0

ここに例があります

a   b
--------
1   10
1   10
2   20
2   20
3   20
3   20
4   NULL
5   NULL

私はこれをmySQLクエリに入れたい:

a       b 
------------
1       10
2 or 3  20
4       NULL
5       NULL

言い換えると、要素のセット where (and に重複はありaません ( borbに重複はありませんNULL))。

私は試してみます

  • SELECT DISTINCT(a), b、しかし、b = 20の2行があります
  • SELECT a, DISTINCT(b)、しかし、列 a に重複があり、2 つのNULL値がマージされます。
  • GROUP BY aまたはGROUP BY b、前の 2 つのクエリと同じです。

誰かがそれについての考えを持っていますか?

4

2 に答える 2

3
SELECT MIN(a) a, b
FROM   table1
WHERE  b IS NOT NULL
GROUP  BY b
UNION
SELECT a, b
FROM   table1
WHERE  b IS NULL

これを試してみてください。

SELECT MIN(a) a, b
FROM   table1
GROUP  BY COALESCE(b, RAND())
于 2013-05-03T14:50:20.223 に答える