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

一个组合查询的有关问题,请大牛看看

2013-01-25 
一个组合查询的问题,请大牛看看姓名 年龄民族 学历 科目刘哲 30汉族 本科 物理王勇 20回族 本科 物理老舍

一个组合查询的问题,请大牛看看
姓名 年龄  民族 学历 科目
刘哲 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汉族本科物理*/

热点排行