Поскольку вы используете SQL Server, вы можете сделать это:
declare @list nvarchar(max)
select @list = ''
select
@list = @list +
case when @list = '' then userid
else ',' + userid end
from
UsersInAuthentication
set @list = '(' + substring(@list, 1, 999) + ')'
print @list
Это хитрый трюк, который строит переменную, добавляя значение каждой строки к текущему значению переменной. Это довольно удобно с табличными операциями и т. П.
Для потомков:
В MySQL вы можете использовать group_concat
:
select
concat('(' + group_concat(userid order by userid separator ',') + ')')
from
UserInAuthentication
В Oracle вы можете использовать курсор:
cursor c_users is
select userid from usersinauthentication;
out_users varchar2(4000);
begin
for r_user in c_users loop
if out_users is null then
out_users:= r_user.first_Name;
else
out_users:= out_users ||', '|| r_user.first_Name;
end if;
end loop;
return out_users;