当前位置: 代码迷 >> Sql Server >> 关于 Select 赋值,该如何处理
  详细解决方案

关于 Select 赋值,该如何处理

热度:377   发布时间:2016-04-27 11:36:19.0
关于 Select 赋值
请看如下语句:
SQL code
declare @pwds varchar(255)set @pwds=''select @[email protected]+','+fusername from s_Sysuser where fid<1000select @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版本有关
  相关解决方案