日期:2014-05-17  浏览次数:20448 次

关于 Select 赋值
请看如下语句:
SQL code


declare @pwds varchar(255)
set @pwds=''
select @pwds=@pwds+','+fusername from s_Sysuser where fid<1000
select @pwds



一般数据库返回值如下:
,NONE,供应商组,生产单位组,招标组,物管组,采购员组,普通用户组,系统管理员组

在某一数据库返回值如下(只返回最后一行值):
,系统管理员组

考虑应该是有参数设置,但不知道是那个参数,请各位大神赐教~~~

------解决方案--------------------
探讨

这里没有用到参数,返回的结果取决于
表中有多少条符合条件的记录
select fusername from s_Sysuser where fid<1000

------解决方案--------------------
探讨

引用:

确认2个数据库执行 select fusername from s_Sysuser where fid<1000
返回的行数和内容都一样吗,应该不一样吧.


这一点可以确定,两个数据库中的数据是一样的..

------解决方案--------------------
探讨

引用:

确认2个数据库执行 select fusername from s_Sysuser where fid<1000
返回的行数和内容都一样吗,应该不一样吧.


这一点可以确定,两个数据库中的数据是一样的..

------解决方案--------------------
使用 set ROWCOUNT n 可以设置返回数据最前面n条数。
0为全部,其他数字为指定数量。

但是你是得到最后一条数据,不是最前面的,你的varchar 是不是倒着拼接,然后有什么order by ** desc的排序?
------解决方案--------------------
探讨
使用 set ROWCOUNT n 可以设置返回数据最前面n条数。
0为全部,其他数字为指定数量。

但是你是得到最后一条数据,不是最前面的,你的varchar 是不是倒着拼接,然后有什么order by ** desc的排序?

------解决方案--------------------
select没加order by,返回的记录集的顺序,是不保证的
------解决方案--------------------
比对一下2个数据库的字符集是否一致,
SQL code

 select name,collation_name from sys.databases

------解决方案--------------------
具体返回的是第一行还是最后一行,跟sql版本有关