请看如下语句:
declare @pwds varchar(255)
set @pwds=''
select @pwds=@pwds+','+fusername from s_Sysuser where fid<1000
select @pwds
一般数据库返回值如下:
,NONE,供应商组,生产单位组,招标组,物管组,采购员组,普通用户组,系统管理员组在某一数据库返回值如下(只返回最后一行值):
,系统管理员组考虑应该是有参数设置,但不知道是那个参数,请各位大神赐教~~~
declare @pwds varchar(255)
set @pwds=''
select @pwds=@pwds+','+fusername from s_Sysuser where fid<1000
select @pwds
一般数据库返回值如下:
,NONE,供应商组,生产单位组,招标组,物管组,采购员组,普通用户组,系统管理员组在某一数据库返回值如下(只返回最后一行值):
,系统管理员组考虑应该是有参数设置,但不知道是那个参数,请各位大神赐教~~~
返回的行数和内容都一样吗,应该不一样吧.
declare @pwds varchar(255)
set @pwds=''
select @pwds=@pwds+','+fusername from s_Sysuser where fid<1000
SET @pwds=STUFF(@pwds,1,1,'')
select @pwds
表中有多少条符合条件的记录
select fusername from s_Sysuser where fid<1000
--------------
这样?
select stuff((select ','+fusername from s_Sysuser where fid<1000 for xml path('')),1,1,'')
注意看一下变量赋值这一段select @pwds=@pwds+','+
同
select @pwds=
区别
set nocount on
-- ???
0为全部,其他数字为指定数量。但是你是得到最后一条数据,不是最前面的,你的varchar 是不是倒着拼接,然后有什么order by ** desc的排序?
SET ROWCOUNT 1
返回的结果是:,NONE
是第一行的结果,和出问题的数据库结果也不一样
我提问用的这段没有加 Order By 但实际业务使用的是加了的,
提问用的这段代码是我为了测试,仿照实际业务代码写出来的,所有语法是一样,只是没有加order by ,而且得到的结果也和实际业务代码是同样效果.所以应该不是 order by 的问题.
两个s_Sysuser表的字段,索引,字符集是否一致, sp_mshelpcolumns s_Sysuser
--> 结果里有个collation字段.