create table tb (Demo1 int,Demo2 int,Demo3 int,Demo4 int,Demo5 int,Demo6 int) go insert tb select 1,2,3,4,5,0 declare @sql varchar(max) set @sql ='select Demo1,Demo2,Demo3 ' if not exists (select 1 from tb where Demo4=0) set @sql =@sql+',Demo4 ' if not exists (select 1 from tb where Demo5=0 ) set @sql=@sql+',Demo5 ' if not exists (select 1 from tb where Demo6=0) set @sql=@sql+',Demo6 '
create table tb (Demo1 int,Demo2 int,Demo3 int,Demo4 int,Demo5 int,Demo6 int) go insert tb select 1,2,3,4,5,0 declare @sql varchar(max) set @sql ='select Demo1,Demo2,Demo3 ' if not exists (select 1 from tb where Demo4=0) set @sql =@sql+',Demo4 ' if not exists (select 1 from tb where Demo5=0 ) set @sql=@sql+',Demo5 'if not exists (select 1 from tb where Demo6=0) set @sql=@sql+',Demo6 'set @sql=@sql +'from tb 'exec(@sql)/* Demo1 Demo2 Demo3 Demo4 Demo5 1 2 3 4 5 */ ----你的意思是这个吗
select demo1,demo2,demo3 from tb
Demo1 Demo2 Demo3 Demo4 Demo5 Demo6
1 2 2 0 2 1
0 2 2 0 2 1
1 3 0 9 2 1
1 2 2 4 2 0
1 2 2 0 0 1
1 0 2 7 2 1岂不是没有SQL语句生成 ?
查到某字段值为null或者是0的时候一般可以考虑在程序界面赋值‘’
create table tb (Demo1 int,Demo2 int,Demo3 int,Demo4 int,Demo5 int,Demo6 int)
go
insert tb select 1,2,3,4,5,0
declare @sql varchar(max)
set @sql ='select Demo1,Demo2,Demo3 '
if not exists (select 1 from tb where Demo4=0)
set @sql =@sql+',Demo4 '
if not exists (select 1 from tb where Demo5=0 )
set @sql=@sql+',Demo5 ' if not exists (select 1 from tb where Demo6=0)
set @sql=@sql+',Demo6 '
set @sql=@sql +'from tb ' exec(@sql)
/*
Demo1 Demo2 Demo3 Demo4 Demo5
1 2 3 4 5
*/
----你的意思是这个吗
create table tb (Demo1 int,Demo2 int,Demo3 int,Demo4 int,Demo5 int,Demo6 int)
go
insert tb select 1,2,3,4,5,0
declare @sql varchar(max)
set @sql ='select Demo1,Demo2,Demo3 '
if not exists (select 1 from tb where Demo4=0)
set @sql =@sql+',Demo4 '
if not exists (select 1 from tb where Demo5=0 )
set @sql=@sql+',Demo5 'if not exists (select 1 from tb where Demo6=0)
set @sql=@sql+',Demo6 'set @sql=@sql +'from tb 'exec(@sql)/*
Demo1 Demo2 Demo3 Demo4 Demo5
1 2 3 4 5
*/
----你的意思是这个吗