我的表格如下
Id Name Gener Lan1 Lan2 lan3
------------------------------------------
1 xyz M Null c c#
2 lmn M c# java jquery
在这里我如何编写查询谁知道更多2 lanuguage
答案 0 :(得分:0)
首先,您的数据库设计非常糟糕,只要有可能就改变它,否则您可以使用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
答案 1 :(得分:0)
我希望这会对你有所帮助。
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
答案 2 :(得分:0)
在您的情况下,如果此人不了解该语言,则相应列中有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