star52
@star52
Программист

Где ошибка в запросе?

SELECT с фильтрацией по значению стал возвращать несколько строк. Почему?
Код
declare
	@mx_number bigint,
	@num bigint,
	@userId varchar(50);

drop table if exists #tt_usif_numb;
select
 ui.id,
 row_number() over(order by ui.id) user_num
into #tt_usif_numb
from
axp.UserInfo ui;

set @mx_number = (select max(user_num) from #tt_usif_numb);

set @num = dbo.getRandIntUp(@mx_number)
select @num

select *
from #tt_usif_numb u
where
u.user_num = 
@num

select *
from #tt_usif_numb u
where
u.user_num = 
dbo.getRandIntUp(@mx_number)


картинка
652a732de5870673423899.jpeg
  • Вопрос задан
  • 48 просмотров
Решения вопроса 1
tsklab
@tsklab Куратор тега SQL Server
Здесь отвечаю на вопросы.
Akina:
Потому что dbo.getRandIntUp(@mx_number) выполняется заново для каждой записи.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы