sql server 2008 UNION 语句 合用 if语句???

xue1234567890 2011-08-24 04:03:44
declare @a char(20)

select * from AAA
union all
if @a=1
begin
select * from BBB
end
Else
begin
select * from CCC
and
union all
select * from DDD


一直报 语法错误,该怎么写?

...全文
242 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xue1234567890 2011-08-24
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 q465897859 的回复:]
SQL code

declare @a char(20)

select * from AAA
if @a=1
begin
select * from BBB
end
Else
begin
select * from CCC
union all
select * from DDD
end


虽然不知道你这个是干什么用的 但是这样就能……
[/Quote]

这个有语法错误。。。
1楼2楼的那种方法就可以。。。
但依然谢谢。。。
xue1234567890 2011-08-24
  • 打赏
  • 举报
回复
谢谢大家。。。

结贴了。。
快溜 2011-08-24
  • 打赏
  • 举报
回复
declare @a varchar(100),@sql varchar(1000)

set @sql='select * from AAA'

if @a=1
set @sql=@sql+' union all select * from BBB'
else
set @sql=@sql+' union all select * from CCC '
set @sql=@sql+'union all select * from DDD'
exec (@sql)

q465897859 2011-08-24
  • 打赏
  • 举报
回复

declare @a char(20)

select * from AAA
if @a=1
begin
select * from BBB
end
Else
begin
select * from CCC
union all
select * from DDD
end

虽然不知道你这个是干什么用的 但是这样就能运行了
geniuswjt 2011-08-24
  • 打赏
  • 举报
回复
拼sql请用动态sql
叶子 2011-08-24
  • 打赏
  • 举报
回复

declare @a char(20)

select * from AAA
union all
select * from BBB where @a=1 --当@a=1时,这个条件成立,ccc后面的不成立
union all
select * from CCC where @a<>1 --当@a不等于1时,这个条件成立,bbb后面的不成立
union all
select * from DDD

geniuswjt 2011-08-24
  • 打赏
  • 举报
回复

declare @a varchar(100),@sql varchar(1000)

set @sql='select * from AAA'

if @a=1
set @sql=' union all select * from BBB'
else
set @sql=' union all select * from CCC union all select * from DDD'

exec (@sql)
叶子 2011-08-24
  • 打赏
  • 举报
回复

declare @a char(20)


select * from AAA
union all
select * from BBB where @a=1
union all
select * from CCC where @a<>1
union all
select * from DDD

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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