• 締切済み

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

  • Lhc
  • お礼率38% (5/13)

みんなの回答

回答No.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

回答No.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; というベタなのはダメですか?

関連するQ&A

  • ある条件でのSQLの取得方法について

    以下の条件でのSQLのデータの取得方法が分かりません。 2つのテーブルがあるとします。 ・テーブルA キー   項目1 10     X 20     Y ・テーブルB キー  項目2  項目3 10     5    C 10     6    D 12     6    E ここで取得する条件として ■テーブルAにあるのは、必ず取得します。 ■テーブルAのキーとテーブルBのキーは繋がり、繋がったテーブルBの情報は  別レコードとして取得します。 ■テーブルAのキー1つに対して、テーブルBのキーは無いかも知れないし、  複数件あるかも知れません。  無い場合はテーブルAの情報のみを出力し、複数件ある場合はその全てを出力します。 ■テーブルBの項目2が同じ値のデータがある場合、テーブルBを出力したレコードと  同じレコードに、項目2が同じデータの情報を出力します。  項目2が同じデータが無い場合はこの情報は出力しません。  項目2が同じ値のデータは最大2件しかありません。 上記の例の場合に出力したい結果 ・出力テーブルC キー  フラグ   項目1  項目2  項目3   項目2が同じキー  項目2が同じ値 10  テーブルA   X 10  テーブルB         5    C 10  テーブルB         6    D        12            E 20  テーブルA   Y (テーブルC のフラグとは、テーブルAの情報かテーブルBの情報かを示します) これを出来ればSQL、出来なければPL/SQLで取得したいのですが どちらの場合でも取得の方法に悩んでいます。 どのような方法で取得できるのでしょうか?

  • アクセス2003 SQL2000を使用してます。

    いつもお世話になっています。 下記のようにAテーブルBテーブルを元に Cテーブルのようにデータを出力したいのですが、 SQL文がうかびません。 どなたか教えてください!! ●Aテーブル(取込データ)  名前  | コード1(主コード) -------------------------  小林  | 100   小林  | 102    田中  | 110   町田  | 130  木村  | 160  木村  | 160  木村  | 180 ●Bテーブル(取込データ) コード1 | コード2 ---------------------------  100   | A  110   | C   130   | D  160   | E ●Cテーブル(出力データ/ABテーブル合体させたもの) ★ ※※※を表示させたい!  ↓ここまでは表示はできている↓  名前  | コード1  | コード2 --------------------------------------------  小林  | 100    | A  小林  | 102    | ※※※  田中  | 110    | C   町田  | 130    | D  木村  | 160    | E  木村  | 160    | E  木村  | 180    | ※※※  ↓表示したい内容。不明な点。↓  名前  | コード1  | コード2 --------------------------------------------  小林  | 100    | A  小林  | 102    | A  田中  | 110    | C   町田  | 130    | D  木村  | 160    | E  木村  | 160    | E  木村  | 180    | E 以上 よろしく御願いします!!

  • PL/SQL INSERTについて

    はじめまして。 PL/SQLにて、SELECTした複数件のデータ全てを一括して別テーブルに出力する方法は、 バルグ!?といった方法を使用しないと出来ないのでしょうか? 今までCOBOLのRDBしか関わったことがないので、初歩的な質問で申し訳ないですが、 よろしくお願いします ※色々なサイトを見てある程度納得したのですが、念のため、現状での回答を頂きたく  質問にあげさせて頂きました。 ※ORACLE 9になります 例えば以下の場合、Aテーブルには、Bテーブルの22、33の内容が作成されてほしいのですが、 エラーとなってしまうのでしょうか? Aテーブル:データなし Bテーブル  DAT1 DAT2 --------------   11  A   22  B   33  C INSERT INTO A(A.DAT1,A.DAT.02) SELECT B.DAT1,D.DAT2 FROM B WHERE B.DAT1 > 15

  • SQL

    以下のような売上テーブルから、 「2009年のデータ」と「2008年と比較した2009年の売上数の増減」を 取得したいです。(商品の昇順で) 取得できるSQL文を教えていただきたいです。 どうぞよろしくお願いいたします。 <売上テーブル> 年, 商品, 売上数 --------------- 2008, A, 30 2008, B, 20 2008, C, 20 2009, A, 10 2009, C, 40 2009, D, 50 <結果>↓ 商品, 2009年の売上数, 増減 ------------------------- A, 10, -20 B, , -20 C, 40, 20 D, 50, 50

  • SQL文

    SQLの初心者です。 Aテーブル(a項目,b項目,c項目)とBテーブル(a項目,d項目,e項目)のテーブルがあります。 d項目順でAテーブルの項目のみ出力するにはどうしたらいいのでしょうか。 例えば次のSQL文ではd項目順で出力されますが結合の為、AテーブルとBテーブルの全項目が出力されます。 SELECT * FROM Aテーブル LEFT OUTER JOIN DITKM ON Aテーブル.a項目 = Bテーブル.a項目 ORDER BY Bテーブル.d項目 次のSQL文のようにAテーブルの項目を選択したらAテーブルの項目のみ出力する事はわかります。 SELECT a項目,b項目,c項目 FROM Aテーブル LEFT OUTER JOIN DITKM ON Aテーブル.a項目 = Bテーブル.a項目 ORDER BY Bテーブル.d項目 今回はAテーブルの項目数が少ないのでこれでもいいのですが、項目数が多くなると大変です。 上の様に項目を選択しないでAテーブルの項目を全て出力する事は可能なのでしょうか。 宜しくお願い致します。

  • こんなSQLを教えてください

    こんなSQLを教えてください <更新前> テーブル1 |キー|コード| | 1|  a| | 2|  b| | 3|  c| テーブル2 |キー|コード| | 2|  B| | 4|  D| <更新後> テーブル1 |キー|コード| | 1|  a| | 2|  B| | 3|  c| こんなふうに テーブル1と同じデータがテーブル2にあったら テーブル1を書き換えるUPDATE文を教えてください

  • sql コマンドとsqlplus コマンドの区別

    オラクルの問題集で以下のような問があるのですが、 見分け方は、ありますか? それとも覚えるしかないのでしょうか? わかる方がいましたら、教えてください。よろしくお願いします。 次の中でsqlコマンドではないものを2つ選びなさい。 A. ALTER B. TRUNCATE C. DESCRIBE D. REVOKE E. SPOOL

  • SQL文で

    すみません。質問させてください。 A,B,C,D,Eと5個のフィールドで構成されたテーブルtableがあるとします。 tableにはデータがすべて格納され(NULLなし)ています。 ですが、フィールドA,C,DについてA,C,Dとも同じデータが格納される ことがあります。 その重複したデータ以外を取得したいのですが (要するにフィールドA,C,Dでユニークのデータのみ取得) SQL文でどのように書けばいいかわかりません。 よろしくお願いいたします

  • SQLの書き方について教えてください。

    SQL Server2000で下記のようなSQL文を書きたいと思っています。 テーブルAとテーブルAに無関係な2個のフィールドを 持つテーブルBがあり、テーブルAのデータをテーブルBにコピー したいと考えています。その際にテーブルBの2個のフィールドに対して 決められた値を挿入したいのですがどのように記述すればよいのか わかりません。 お分かりの方お教えいただけませんでしょうか よろしくお願いいたします。 下記の記述をしています。 INSERT INTO テーブルB ( A, B, C, D ) SELECT テーブルA.A, テーブルA.A, XXX1, XXX2 FROM reserveSETdateTRN; Cに東京 Dに品川 を入れたいと思っています

  • SQL文をご教授願います

    SQL文をご教授願います。 以下のようなテーブルを仮定しています。 A   B    C   D ---------------------- 10  100  1203 A 10  200  1204 B <--- 取得したい 11  300  1203 C 11  300  1204 D <--- 12  400  1206 D 12  500  1207 E <--- ・ ・ A列をー意にして、A列・D列のデータを取得したい 条件 Bの大きい方を取得する Bの値が同じ場合はCの大きい方を取得する。 (A列には同じデータが2以上あるとします) (C列には同じデータはありません) 欲しい結果 A   D -------- 10 B 11 D 12 E