1

テーブルから「Bo%」または「Ni%」のような名前を選択し、Bo のようなすべての名前に特定の名前を付け、Ni のようなすべての名前に特定の名前を付けたいと考えています。しかし、このようにエイリアス名を付けると、機能しません。

男性は「Bo%」のような名前、女性は「Ni%」のような名前です。では、どうすればこれを行うことができますか?

4

1 に答える 1

1

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
于 2011-07-04T04:10:14.107 に答える