DECLARE @i int
DECLARE @s varchar(500)
set @i=6
while @i<42
BEGIN
set @s ='insert into USysUserRights( FUserId, FItemId, FOpenRun, FAdd, FEdit,
FDelete, FPreview, FPrint, FOutPut, Fsh,
Fbs, FFind, FSetFinish) values (1,'+@i+',-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1)'
print(@s)
set @i=@i+1
CONTINUE
end
服务器: 消息 245,级别 16,状态 1,行 6
将 varchar 值 'insert into USysUserRights( FUserId, FItemId, FOpenRun, FAdd, FEdit,
FDelete, FPreview, FPrint, FOutPut, Fsh,
Fbs, FFind, FSetFinish) values (1,' 转换为数据类型为 int 的列时发生语法错误。
2. select top 1 from USysUserRights
怎么把一行的每一列的结果组合到一起,最好是 列名A 结果1 列名B 结果2
FDelete, FPreview, FPrint, FOutPut, Fsh,
Fbs, FFind, FSetFinish) values (1,'+ltrim(@i)+',-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1)'
select * from USysUsers where UserID=1
结果
列1 列2
UerID UserName
admin
=>
期待结果
列1------只有一列的 结果合并
UerID 1 UserName admin
或者
1 admin
select * from USysUsers where UserID=1
结果
列1 列2
UerID UserName
1 admin
=>
期待结果
列1------只有一列的 结果合并
UerID 1 UserName admin
或者
1 admin
----------
看不懂,这不是全变成列名了,UP
declare @tb table (column1 varchar(200), column2 varchar(200))insert @tb
select 'oh', 'world'
declare @str varchar(300)
set @str = ''
;
with test as
(
select fields,[values]
from
(
select column1,column2 from @tb
)t
unpivot
(
[values] for fields in (column1,column2)
)as up
)select @str = @str + c1 + ',' from
(
select fields + ' ' + [values] as c1 from test
)t select @str
declare @s varchar(8000)
select @s=isnull(@s+' ','')+ltrim(userid)+' '+username
from USysUsers
where UserID=1
select @s