id name1 name2 name3 name4 name5 name6 ......
01 张三
02 张三
03 张三
04
......在不同的字段中有相同的值“张三”,我想输出含有“张三”的所有记录。
请问实现这样的SQL怎么写???谢谢了!
01 张三
02 张三
03 张三
04
......在不同的字段中有相同的值“张三”,我想输出含有“张三”的所有记录。
请问实现这样的SQL怎么写???谢谢了!
那就这样:select * from table1 where name1='张三' or name2='张三' or ....... or namen='张三'
如果不是固定的列,可以使用动态语句组成这样的语句!
insert test select '01','张三',null,null
union all select '02',null,'张三',null
union all select '03',null,null,'张三'declare @s varchar(8000)
set @s=''
select @s=@s+'or '+name+'=''张三'''from syscolumns where id=object_id('test') and colid>1
select @s='select * from test where '+stuff(@s,1,2,'')
exec(@s)drop table test
---------- ---------- ---------- ----------
01 张三 NULL NULL
02 NULL 张三 NULL
03 NULL NULL 张三
select * from (name1 + name2 + ... + name6) like '%张三%'不过要保证没有这样的才行
name1 name2
-------------
张 三
where (name1 + name2 + ... + name6) like '%张三%'bill024(咖啡熊)写的没太看明白,清给我详细解释以下,谢谢了。