この記述を検討してください。 姓を選択してください 従業員より ORDER BY CASE WHEN salary = (SELECT MAX(salary) FROM employees) そして「A」 それ以外の場合は姓 終了、姓 DESC; 正しい記述は次のうちどれですか?(2つ選択)
正解:B,E
ORDER BY句にCASE文を使用すると、CASE式の結果に基づいて条件付きソートを行うことができます。 A. これは正しくありません。THEN 句の「A」は、最高給与を得ている従業員を上位に並べ替えますが、彼らの姓が表示される順序を決定するものではありません。 B. これは正しいです。THEN 句の「A」によって、最高給与の受給者全員が上位に並び、また「A」は姓のアルファベット順で前に来るため、昇順になります。 C. これは正しくありません。ELSE 句は残りの従業員を last_name でソートしますが、順序を指定していないため、デフォルトで昇順になります。これは、DESC を指定する ORDER BY 句の 2 番目の部分と矛盾します。 D. これは正しくありません。残りの従業員名の順序は ORDER BY 句で指定され、last_name DESC と記述されています。 E. これは正しいです。給与が最も高い従業員がソートされた後、残りの従業員の名前は、ORDER BY句のlast_name DESCにより降順で表示されます。 F. この記述は正しくありません。CASE文で指定された「A」は、最高給与を得ている従業員の明確な順序を示しています。 参照: Oracle Database SQL言語リファレンス、12cリリース1(12.1):"ORDER BY句" Oracle Database SQL言語リファレンス、12cリリース1(12.1):"CASE式"