- 締切済み
SQL コマンド
データの変換するコマンドを教えてください A|B ==== 1|A 2|B 3|C 4|A 5|D 6|A 7|D というテーブル内容を以下のように出力したいです。 だれがよいコマンドを教えてくださいませんか。 A B C D 1 0 0 0 0 1 0 0 0 0 1 0 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- chukenkenkou
- ベストアンサー率43% (833/1926)
質問に示されたデータでは、ソートに利用できるキーがないので、 検索結果の順序は保証されませんよ? <SQL例1> select case when B='A' then 1 else 0 end as A, case when B='B' then 1 else 0 end as B, case when B='C' then 1 else 0 end as C, case when B='D' then 1 else 0 end as D from t1 上記のSQLを活用すると、次のような検索結果を得ることも可能です。 A B C D 3 1 1 2 上記の結果を得るには、次のようなSQLになります。 <SQL例2> select sum(A) as A, sum(B) as B, sum(C) as C, sum(D) as D from ( select case when B='A' then 1 else 0 end as A, case when B='B' then 1 else 0 end as B, case when B='C' then 1 else 0 end as C, case when B='D' then 1 else 0 end as D from t1 ) as x
- olympia_wa
- ベストアンサー率0% (0/1)
SELECT CASE WHEN B = 'A' THEN '1000' WHEN B = 'B' THEN '0100' WHEN B = 'C' THEN '0010' WHEN B = 'D' THEN '0001' END AS ABCD FROM テーブル名 ORDER BY A; というベタなのはダメですか?