プライオリティリストから行の中で空でない最初の列を検索するときに、私は個人的に合体を使用します。
たとえば、私は顧客のテーブルから電話番号を取得したいと思いますが、モバイル、自宅、仕事の3つの列がありますが、空でない最初の番号のみを取得します。
この例では、私はモバイルの優先順位を持っていますし、家に帰ってから仕事をします。
TABLE STRUCTURE
--------------------------------------------
| id | customername | mobile | home | work |
--------------------------------------------
| 1 | Joe | 123 | 456 | 789 |
--------------------------------------------
| 2 | Jane | | 654 | 987 |
--------------------------------------------
| 3 | John | | | 321 |
--------------------------------------------
SELECT id, customername, COALESCE(mobile, home, work) AS phone FROM customers
RESULT
------------------------------
| id | customername | phone |
------------------------------
| 1 | Joe | 123 |
------------------------------
| 2 | Jane | 654 |
------------------------------
| 3 | John | 321 |
------------------------------
は 'COALESCE()'単一の値のみを返します。これに反する具体的な例がある場合は、質問を更新してください。 – fenway