23

列がnullでない場合は列で並べ替えることができるように、SQLで結合する方法はありますが、nullの場合は、別の列で並べ替えることができますORDER BYか?IS NULL

4

4 に答える 4

47

何かのようなもの:

ORDER BY CASE 
    WHEN Column1 IS NOT NULL THEN Column1
    ELSE Column2
END

書くのと同じ:

ORDER BY COALESCE(Column1, Column2)

どちらも正常なRDBMSで機能するはずです。

于 2012-06-12T19:25:03.673 に答える
13

これを試して

  ORDER BY COALESCE(fieldA, fieldB);
于 2012-06-12T19:28:44.353 に答える
0

次の方法で試すことができます。

ORDER BY ISNULL(firstField, secondField)
于 2012-06-12T19:24:49.333 に答える
-1

テストできるTablesATMはありませんが、これは機能する可能性があります。少なくとも、使用可能なデータがなくても機能します。

SELECT * FROM table1
LEFT JOIN table2 ON table1.id = table2.id 
WHERE 1 
ORDER BY IF( table2.id, table1.id, table1.name )

また、table2.idがnullの場合、順序がどのようになるかわかりませんが、非常に不安定なようです。

于 2012-06-12T19:34:38.347 に答える