姓名 年龄  民族 学历 科目
刘哲 30   汉族 本科 物理
王勇 20   回族 本科 物理
老舍 40   满族 硕士 数学
李丽 25   苗族 硕士 语文
黄海 30   蒙族 本科 政治想查询符合“30岁,汉族,本科,物理”其中任意N(1或2或3或4)项的记录(即刘哲,王勇和黄海),这样的SQL语句该怎么写呢?小弟初学,请大哥大姐帮忙,谢谢了。。

解决方案 »

  1.   


    select * from 表名 where 年龄=30 or 民族='汉族' or 学历='本科' or 科目='物理'
      

  2.   

    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 汉族 本科 物理*/