テーブルから「Bo%」または「Ni%」のような名前を選択し、Bo のようなすべての名前に特定の名前を付け、Ni のようなすべての名前に特定の名前を付けたいと考えています。しかし、このようにエイリアス名を付けると、機能しません。
男性は「Bo%」のような名前、女性は「Ni%」のような名前です。では、どうすればこれを行うことができますか?
テーブルから「Bo%」または「Ni%」のような名前を選択し、Bo のようなすべての名前に特定の名前を付け、Ni のようなすべての名前に特定の名前を付けたいと考えています。しかし、このようにエイリアス名を付けると、機能しません。
男性は「Bo%」のような名前、女性は「Ni%」のような名前です。では、どうすればこれを行うことができますか?
SQL では、列またはテーブルに別名を付けることができます。値ごとに列名を変更することはできません。後の操作で参照できるように、名前は一貫している必要があります。
表示する各オプション専用の列を作成する必要があります。
SELECT CASE WHEN t.col LIKE 'Bo%' THEN t.col ELSE NULL END AS male,
CASE WHEN t.col LIKE 'Ni%' THEN t.col ELSE NULL END AS female
FROM YOUR_TABLE t
...しかし、それは男性または女性の列がnullになる可能性があることを意味します-どちらもLIKE
一致しない場合、両方になります:
name male female
-------------------
Bob Bob NULL
Nirmal NULL Nirmal
Xander NULL NULL