查询包含某个值的所有记录????

lncf 2007-06-22 08:12:07
id name1 name2 name3 name4 name5 name6 ......
01 张三
02 张三
03 张三
04
......

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

谢谢了!

...全文
238 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lncf 2007-06-23
  • 打赏
  • 举报
回复
是不是写成这样的形式:(表名如果是Test的话)

select * from Test
where (name1 + name2 + ... + name6) like '%张三%'

bill024(咖啡熊)写的没太看明白,清给我详细解释以下,谢谢了。
yjlhch 2007-06-23
  • 打赏
  • 举报
回复
mark
free_pop2k 2007-06-22
  • 打赏
  • 举报
回复
--try
select * from (name1 + name2 + ... + name6) like '%张三%'

不过要保证没有这样的才行
name1 name2
-------------
张 三
liming566 2007-06-22
  • 打赏
  • 举报
回复
看的不是很懂。。能解释哈子最好。
bill024 2007-06-22
  • 打赏
  • 举报
回复
id name1 name2 name3
---------- ---------- ---------- ----------
01 张三 NULL NULL
02 NULL 张三 NULL
03 NULL NULL 张三
bill024 2007-06-22
  • 打赏
  • 举报
回复
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
  • 打赏
  • 举报
回复
你的列是固定的吧
那就这样:select * from table1 where name1='张三' or name2='张三' or ....... or namen='张三'
如果不是固定的列,可以使用动态语句组成这样的语句!

34,576

社区成员

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

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