web-dev-qa-db-ja.com

複数の注文基準を持つケースごとの注文

ケース付きの複数の注文列の使用方法を教えてください。たとえば、ケース1は、FirstName、GivenNameで並べ替えます。ケース2は、GivenName、FirstNameで並べ替えます。

私はこれを試しましたが、コロンがエラーを導入しているようです

1の場合はFirstName、GivenName、GivenName、FirstNameの場合は、ケースで並べ替え

3
otrovagomas

ケースは、タプルではなく1つの値を返すことになっています。さらに、1と何かを比較する必要があります。条件付きの順序が必要な場合は、2つのcaseステートメントを使用して実行できます。

ORDER BY CASE WHEN x = 1 THEN FirstName ELSE GivenName END
       , CASE WHEN x = 1 THEN GivenName ELSE FirstName END
5
Lennart

複数の条件付きORDER BYステートメントの場合:

ORDER BY CASE category WHEN 0 THEN concat(cName,', ',bName) END DESC,
         CASE category WHEN 1 THEN concat(aName,', ',bName,', ',cName) END DESC,
         CASE category WHEN 2 THEN concat(bName,', ',aName,', ',cName) END DESC";
1
Grant