猿问

需求一个SQL语句。达到and的效果。谢谢

<P>数据库里有一个表,主要有两个字段 [姓名],[技能]</P> <P>可能的数据如下</P> <P>[姓名]&nbsp;&nbsp;[技能]<BR>甲&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 技能1<BR>甲&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 技能2<BR>甲&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 技能3<BR>乙&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 技能1<BR>乙&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 技能2<BR>乙&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 技能4<BR>丙&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 技能2<BR>丙&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;技能3<BR>丁&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 技能1<BR>丁&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 技能4</P> <P>......</P> <P>现在我想找到拥有技能1,同时还拥有技能2的人。</P> <P>希望能够通过一个sql语句得到这样的结果</P> <P>[姓名]&nbsp;&nbsp;[技能]<BR>甲&nbsp;&nbsp;技能1<BR>甲&nbsp;&nbsp;技能2<BR>乙&nbsp;&nbsp;技能1<BR>乙&nbsp;&nbsp;技能2</P> <P>丙拥有技能2,但是没有技能1,不能显示出来。<BR>丁只有技能1没有技能2也不能显示。<BR></P> <P>想了大约两个小时没有想出来,希望大家能够帮帮忙。谢谢。</P>

MMTTMM
浏览 627回答 2
2回答

蓝山帝景

with t_cn as ( select 姓名,技能,cn = COUNT(*) OVER(PARTITION BY 姓名) from tableName WHERE 技能 = '技能1' OR 技能 = '技能2' )select 姓名,技能 from t_cn where cn = 2

慕村9548890

是不是这个效果: select * from [Name] where 姓名 in (select 姓名 from [Name] where 姓名 in (select 姓名 from [Name] where 技能='技能1') and 技能='技能2') and 技能='技能1' union select * from [Name] where 姓名 in (select 姓名 from [Name] where 姓名 in (select 姓名 from [Name] where 技能='技能1') and 技能='技能2') and 技能='技能2'
随时随地看视频慕课网APP

相关分类

SQL Server
我要回答