sql查询如何获取谁知道两种以上的语言
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql查询如何获取谁知道两种以上的语言相关的知识,希望对你有一定的参考价值。
我的桌子看起来像
Id Name Gener Lan1 Lan2 lan3
------------------------------------------
1 xyz M Null c c#
2 lmn M c# java jquery
在这里我怎么能写出知道超过2种语言的查询
答案
我希望这能帮到您。
SELECT * FROM (SELECT ID,NAME,GENRE,COUNT(LAN1)+COUNT(LAN2)+COUNT(LAN3) AS
KNOWN_LANG FROM YOUR_TABLE GROUP BY NAME) WHERE KNOWN_LANG >=2
另一答案
首先,你的数据库设计非常糟糕,如果可能的话就改变它,否则你可以使用apply
操作符来获得不仅仅是语言的用户。
SELECT a.id
FROM table t
CROSS APPLY (
VALUES (id, Name, Lan1),
(id, Name, Lan2),
(id, Name, Lan3)
)a(id, name, lans)
GROUP BY a.id
HAVING COUNT(a.lans) > 1
如果一个用户在(Lan1,Lan2,Lan3,..)中输入相同的语言,请使用DISTINCT
另一答案
在您的情况下,如果该人不知道该语言,则在相应列中有null
。所以,如果你想得到知道三种语言的人,就足以检查所有列是否都是not null
。
select id, name, gender, lan1, lan2, lan3 from MY_TABLE
where [lan1] is not null and [lan2] is not null and [lan3] is not null
以上是关于sql查询如何获取谁知道两种以上的语言的主要内容,如果未能解决你的问题,请参考以下文章
中继fetchQuery:如何在没有片段结构的情况下获取查询结果
sql [SQL查询片段]用于在命令行或通过R和其他工具使用SQL的快速代码段#tags:sql,R,text processing,命令li