<P>数据库里有一个表,主要有两个字段 [姓名],[技能]</P> <P>可能的数据如下</P> <P>[姓名] [技能]<BR>甲 技能1<BR>甲 技能2<BR>甲 技能3<BR>乙 技能1<BR>乙 技能2<BR>乙 技能4<BR>丙 技能2<BR>丙 技能3<BR>丁 技能1<BR>丁 技能4</P> <P>......</P> <P>现在我想找到拥有技能1,同时还拥有技能2的人。</P> <P>希望能够通过一个sql语句得到这样的结果</P> <P>[姓名] [技能]<BR>甲 技能1<BR>甲 技能2<BR>乙 技能1<BR>乙 技能2</P> <P>丙拥有技能2,但是没有技能1,不能显示出来。<BR>丁只有技能1没有技能2也不能显示。<BR></P> <P>想了大约两个小时没有想出来,希望大家能够帮帮忙。谢谢。</P>
2 回答
蓝山帝景
TA贡献1843条经验 获得超7个赞
with t_cn as ( select 姓名,技能,cn = COUNT(*) OVER(PARTITION BY 姓名) from tableName WHERE 技能 = '技能1' OR 技能 = '技能2' )select 姓名,技能 from t_cn where cn = 2
慕村9548890
TA贡献1884条经验 获得超4个赞
是不是这个效果: 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'
- 2 回答
- 0 关注
- 626 浏览
添加回答
举报
0/150
提交
取消