Sqlite如何为列中的多个值选择大小写

时间:2016-03-17 16:20:37

标签: sqlite

所以,我有这张桌子:

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的单个键有多个值。什么查询可以实现这个目标?

2 个答案:

答案 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;