私は3つの列を持つテーブルを持っています。最初の列にはIDが含まれ、他の2つの列には日付が含まれます(最大で1つはnullですが、何かに影響するとは思わない)。どの日付を基準にしてIDを注文するのですか?私は試しました2つの異なる(おそらくヌル)列によるSQLの順序
ORDER BY CASE
WHEN date1 > date2 THEN date1
ELSE date2
END
しかし、これは動作しませんでした。誰でも助けてくれますか?また、私が他の人が投稿した同様の問題はすべて、最初の列であるに基づいて結果が並べ替えられ、最初の列がnullの場合はの2番目の列になります。私は最初にすべての単一のヌル値を定義する必要がありますか?私はこのテーブルを完全な外部結合で作成していますので、これは全く別の質問ですので、null値を使用するとうまくいけばうまくいきます。
あなた 'CASE'式は、それは' date2'がnullの場合をサポートしていないことを除いて、私には正常に見えます。それをサポートするために、 'date1> date2 OR date2 IS NULL THEN date1 ELSE date2 END'と書いてみましょう。しかし、あなたはそれが "うまくいかない"と言います。あなたはもっと具体的になりますか?たとえば、注文が正しく行われなかった実際のデータを投稿できますか? – ruakh
Gabe、どのデータベースがクエリを実行していますか? –
申し訳ありませんが、私は彼らがすべて同じように働いていると思いました。しかし、私はOracleを使用しています。それはあなたのために十分な特定のものかどうかは分かりません。 :S –