首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

查询包含某个值的所有记录?该如何解决

2012-01-28 
查询包含某个值的所有记录????idname1name2name3name4name5name6......01张三02张三03张三04......在不同

查询包含某个值的所有记录????
id     name1     name2     name3     name4     name5     name6   ......
01     张三
02                   张三  
03                                               张三
04
......

在不同的字段中有相同的值“张三”,我想输出含有“张三”的所有记录。
请问实现这样的SQL怎么写???

谢谢了!



[解决办法]
你的列是固定的吧
那就这样:select * from table1 where name1= '张三 ' or name2= '张三 ' or ....... or namen= '张三 '
如果不是固定的列,可以使用动态语句组成这样的语句!
[解决办法]
create table test(id varchar(10),name1 varchar(10),name2 varchar(10),name3 varchar(10))
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
[解决办法]
--try
select * from (name1 + name2 + ... + name6) like '%张三% '

不过要保证没有这样的才行
name1 name2
-------------
张 三

热点排行