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查询如何获取谁知道两种以上的语言的主要内容,如果未能解决你的问题,请参考以下文章

sql把两值之和当作条件进行查询

用于获取特定语言行的 SQL 查询(使用默认语言)

怎么获取AJAX前台返回JSON 数据

Microsoft SQL Server 代码片段收集

中继fetchQuery:如何在没有片段结构的情况下获取查询结果

sql [SQL查询片段]用于在命令行或通过R和其他工具使用SQL的快速代码段#tags:sql,R,text processing,命令li