重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

データの変換するコマンドを教えてください

A|B
====
1|A
2|B
3|C
4|A
5|D
6|A
7|D
というテーブル内容を以下のように出力したいです。
だれがよいコマンドを教えてくださいませんか。

ABCD
1000
0100
0010
1000
0001
1000
0001

A 回答 (2件)

質問に示されたデータでは、ソートに利用できるキーがないので、


検索結果の順序は保証されませんよ?

<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
    • good
    • 0

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;
というベタなのはダメですか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す