一个组合查询的问题,请大牛看看
姓名 年龄 民族 学历 科目
刘哲 30 汉族 本科 物理
王勇 20 回族 本科 物理
老舍 40 满族 硕士 数学
李丽 25 苗族 硕士 语文
黄海 30 蒙族 本科 政治
想查询符合“30岁,汉族,本科,物理”其中任意N(1或2或3或4)项的记录(即刘哲,王勇和黄海),这样的SQL语句该怎么写呢?小弟初学,请大哥大姐帮忙,谢谢了。。
[解决办法]
select * from 表名 where 年龄=30 or 民族='汉族' or 学历='本科' or 科目='物理'
if object_id('[TB]') is not null drop table [TB]
go
create table [TB] (姓名 nvarchar(4),年龄 int,民族 nvarchar(4),学历 nvarchar(4),科目 nvarchar(4))
insert into [TB]
select '刘哲',30,'汉族','本科','物理' union all
select '王勇',20,'回族','本科','物理' union all
select '老舍',40,'满族','硕士','数学' union all
select '李丽',25,'苗族','硕士','语文' union all
select '黄海',30,'蒙族','本科','政治'
select * from [TB]
DECLARE @n INT
DECLARE @i VARCHAR(200)
DECLARE @sql VARCHAR(1000)
SET @n = 2
SET @i ='30岁,汉族,本科,物理'
SELECT @sql ='SELECT TOP '+CONVERT(VARCHAR,@n)+' * FROM TB WHERE CONVERT(VARCHAR,年龄)+''岁''+民族+学历+科目=REPLACE('''+@i+''','','','''')'
EXEC(@sql)
/*
姓名年龄民族学历科目
刘哲30汉族本科物理*/