为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

MMTTMM 2018-12-03 10:13:45
<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>
查看完整描述

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

查看完整回答
反对 回复 2018-12-07
?
慕村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'

查看完整回答
反对 回复 2018-12-07
  • 2 回答
  • 0 关注
  • 626 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信