所以,我有这张桌子:
id|otherid|key|value
--------------------
1 1 ak av
2 1 bk bv
3 2 ak av
3 2 ak av2
需要注意的是,其他ID正在重复,并且它们可以使用具有多次值的相同键。我想要检索的东西是密钥的值,或者,如果同一个密钥有多个值,则为某个字符串。 所以,我想收到其他人
otherid|key|value
-----------------
1 ak av
1 bk bv
2 ak SEQUENCE
在哪里' SEQUENCE' string允许我知道otherid的单个键有多个值。什么查询可以实现这个目标?
答案 0 :(得分:1)
要为多个输入行获取一个输出行,请使用分组。
COUNT(*)
可以使用组中的行数;您可以使用CASE expression:
SELECT otherid,
key,
CASE COUNT(*)
WHEN 1 THEN MIN(value)
ELSE 'SEQUENCE'
END AS value
FROM MyTable
GROUP BY otherid,
key;
答案 1 :(得分:0)
SELECT DISTINCT
otherid,key,
(SELECT
CASE
WHEN COUNT(value)=1 THEN value
WHEN COUNT(value)=0 THEN '*nil*'
ELSE '*sequence*'
END)
FROM datasingle
WHERE otherid=myid GROUP BY key;