动态sql语句法的union all select

jiaojian843 2006-11-20 04:35:01
declare @s varchar(1000)
set @s='1,23,a'
declare @sql varchar(8000)
set @sql='select col='''+replace(@s,',',''' union all select ''')+''' '
exec(@sql)

结果col
---------
1
23
a

请问union all select代表什么数据来替换查找到的逗号,怎么出来这样的结果有点不解。请详细讲解一下,最好留下QQ以便我咨询。
...全文
519 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
feng1071 2006-11-20
  • 打赏
  • 举报
回复
QQ:18635354
feng1071 2006-11-20
  • 打赏
  • 举报
回复
print @sql
select col='1' union all select '23' union all select 'a'
union all select是连接作用

replace"所有,"替换成union all select
早起晚睡 2006-11-20
  • 打赏
  • 举报
回复
select col='1' union all select '23' union all select 'a'
rea1gz 2006-11-20
  • 打赏
  • 举报
回复
print结果:
select col='1' union all select '23' union all select 'a'

原来
1,23,a
每个,替换成 ' union all select ' ,得
1' union all select '23' union all select 'a
前面加
select col='
后面加
'
就得到
select col='1' union all select '23' union all select 'a'
运行这个语句是你要的结果


中国风 2006-11-20
  • 打赏
  • 举报
回复
union all是数据的连接用','替换为数据的连接。得出的结果为以','分隔的数字显示
select 1
union all
select 1
union all
select 2
rea1gz 2006-11-20
  • 打赏
  • 举报
回复
declare @s varchar(1000)
set @s='1,23,a'
declare @sql varchar(8000)
set @sql='select col='''+replace(@s,',',''' union all select ''')+''' '

print @sql --exec前print一下就明白这个语句是怎么凑的

exec(@sql)
dawugui 2006-11-20
  • 打赏
  • 举报
回复
@sql = 'select col='1' union all select '23' union all select 'a' '
union all select 代码@s中的逗号

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧