| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 487 人关注过本帖
标题:关于sql动态小问题
只看楼主 加入收藏
上帝之允
Rank: 1
等 级:新手上路
帖 子:67
专家分:5
注 册:2010-10-11
结帖率:73.68%
收藏
已结贴  问题点数:20 回复次数:6 
关于sql动态小问题
为什么set @sql=''
select @sql=@sql+','+工程人员
from (select distinct 工程号,工程人员 from zhangsan) x where 工程号=@工程号
return @sql

select @sql=工程人员
from (select distinct 工程号,工程人员 from zhangsan) x where 工程号=@工程号
return @sql 不一样,为什么后者可以输出多项
 那为什么@SQL一定要定义初始值
还有重要的是为什么可以连续输出,原理是什么,谢谢!!
搜索更多相关主题的帖子: sql 动态 
2010-11-13 17:20
tangyunzhong
Rank: 5Rank: 5
来 自:广西
等 级:职业侠客
威 望:4
帖 子:97
专家分:364
注 册:2010-7-28
收藏
得分:8 
回复 楼主 上帝之允
你的第二个语句是赋最后一个数据的,你的第一个语句是把多个值连接起来。
  执行看一下,第二个语句返回的是最后一条数据值。
2010-11-13 17:39
qingshuiliu
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:17
帖 子:323
专家分:1538
注 册:2009-12-28
收藏
得分:2 
select @sql=工程人员
from (select distinct 工程号,工程人员 from zhangsan) x where 工程号=@工程号
()中的是子视图,就是一个数据源。那么你从子视图中取到“工程号”,“工程人员”两个字段。
两个语句都应该输出一个结果。有初始值是为了防止程序出错。
不明白楼主:“连续输出”是什么意思
你可以把你输出的结果贴出来,让大家看一下吗?

2010-11-13 18:32
上帝之允
Rank: 1
等 级:新手上路
帖 子:67
专家分:5
注 册:2010-10-11
收藏
得分:0 
就是会出现
例如
工程号  工程人员
A       张三,李四,王五
的效果
而第二个只能输出一个满足条件的工程人员
为什么,原理是什么??
2010-11-13 20:31
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
你可以这样理解:一个SELECT语句执行时,相当于一个程序语言中的循环过程。

★★★★★为人民服务★★★★★
2010-11-13 20:41
上帝之允
Rank: 1
等 级:新手上路
帖 子:67
专家分:5
注 册:2010-10-11
收藏
得分:0 
那为什么第二个不可以呢??
2010-11-13 20:42
qingshuiliu
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:17
帖 子:323
专家分:1538
注 册:2009-12-28
收藏
得分:10 
select @sql=@sql+','+工程人员
select @sql=工程人员
第二个,不行,只能输出最后一个
因为@sql=@sql+相当于,不断的加入!
2010-11-13 22:20
快速回复:关于sql动态小问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.031038 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved