SQLで空のカラムを追加するには?

このQ&Aのポイント
  • 表に表示するカラムはemployee_id, employee_name, hire_date, section, address, retirement_dateとする。
  • 表1と表2のemployee_idが同じものだけを抽出する。
  • hire_dateはYYYY/MM/DDの形に変更する。
回答を見る
  • ベストアンサー

SQLで空のカラムを追加するには?

データベースに次の2つの表があったとします。 (表1「employee」) ・employee_id ・employee_name ・hire_date ・section 上記の4つのカラムを所持 例:(101,田中太郎,1995-10-01,総務) (表2「employee_data」) ・employee_id ・employee_name ・address ・phone_number 上記の4つのカラムを所持 例:(101,田中太郎,東京都,11-1111) この2つの表から次の条件で連携したい場合、どのようにすれば良いのでしょうか。 (条件) (1)表に表示するカラムはemployee_id,employee_name,hire_date,section,address,retirement_date (2)表1と表2のemployee_idが同じものだけを抽出 (3)hire_dateはYYYY/MM/DDの形に変更 (4)retirment_dateは空白(NULL)

  • Oracle
  • 回答数1
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5081/13278)
回答No.1

SELECT employee.employee_id, employee.employee_name, TO_CHAR(employee.hire_date, 'YYYY/MM/DD') AS hire_date employee.section, employee_data.address, NULL AS retirement_date FROM employee, employee_data WHERE employee.employee_id = employee_data.employee_id

tomo-cafe-93
質問者

お礼

回答ありがとうございました。

関連するQ&A

  • MySQLで、指定の複数カラムのみコピーする方法

    同じ構造の、  A_table と B_table があります。 それぞれに  id date name address mail comment という、6つのカラムがあります。 変更があった際に、 A_table にcsvで全データをインポートし、  B_table に変更のあったカラム( date name address mail )の列だけをコピーしたいと思っています。 ( id )は A_table と B_table 共通にし、変更しないことを前提としています。 ( comment )は外部から編集できるため、csvデータが最新の情報とは限りませんので、 csvデータでの変更は考えておりません。 レコード数としては、多い方だと思います。 上記の作業をしようと思っているのですが、 >> B_table に変更のあったカラム( date name address mail )の列だけをコピー する方法をご存じの方がいらっしゃいましたら、何卒、ご教授お願い致します。 また、 変更したいカラムだけ、csvデータとidを共通にすればインポート可能かな…と探してはみたのですが無いようで、こちらはできないと考えても大丈夫なのでしょうか。 (phpmyadminを利用しておりますが、カラム名を指定してインポートはできるのですが、  指定しないカラムは空白になって上書きされてしまいます。) ついでで申し訳ないですが、宜しければアドバイスをいただければと思います。

  • COBOLの動的SQLについて

    COBOLにおいて、動的にSQLを組みたいのですが、 取得する方法も含めてご教授願いませんでしょうか? 例) 条件により コード=1の場合、 SELECT A.ID,B.NAME FROM ID A,NAME B コード=2の場合、 SELECT A.ID,B.NAME,C.ADDRESS FROM ID A,NAME B,ADDRESS C のように条件により取得する項目も数もテーブルも違います。 この場合でのSQLの組み方とデータを取得する(FETCHの方法)がわかりません。 また、取得する件数も1件ではありません。 よろしくお願い致します。

  • 次の条件を満たすSQL文をご教示下さい。

    テーブル名: list no | first_name | last_name | comment ----+------------+-----------+--------- 1 | 太郎 | 山田 | ほげ 2 | 次郎 | 田中 | ふが 3 | 花子 | 山田 | ぴよ 4 | 三郎 | 佐藤 | ぴよ 5 | 太郎 | 山田 | ぴよ 6 | 次郎 | 田中 | ふー 7 | 三郎 | 佐藤 | ふー 8 | 花子 | 山田 | ふー 上記の表から同じ”last_name”を持つ人の”first_name”と”last_name”を重複無しで抽出する(下記のような結果)SQL文は作成可能でしょうか。 結果 first_name | last_name ------------+----------- 太郎 | 山田 花子 | 山田 宜しくお願いします。

  • GETパラメータの内、空文字のクエリを消去したい

    フォームからGETで複数のパラメータを送信するとき、値が空文字のものを表示しないようにすることは可能でしょうか。 たとえば、次のようなフォームを含むform.phpがあるとします。 -------------- <form action="./result.php" method="get"> <input type="text" name="id" size="40"> <input type="text" name="name" size="40"> <input type="text" name="address" size="40"> <input type="text" name="sex" size="40"> <input type="submit" value="送信"><input type="reset" value="リセット"> </form> -------------- このフォームから、 -------------- id:13 name:佐藤太郎 address:東京都新宿区適当1-2-3 sex:男性 -------------- というデータを送信した場合、送信ボタンを押すと ./result.php?id=13&name=佐藤太郎&address=東京都新宿区適当1-2-3&sex=男性 のページに遷移しますが、 -------------- id: name:佐藤太郎 address: sex:男性 -------------- ですと ./result.php?id=&name=佐藤太郎&address=&sex=男性 になります。 このままですとクエリが読みにくいので、 -------------- id: name:佐藤太郎 address: sex:男性 -------------- の場合は ./result.php?name=佐藤太郎&sex=男性 と入力値のあるものだけを表示してそれ以外は消去したいです。 というのも、例としたform.phpではパラメータは4つでしたが、現在作成しているフォームではパラメータが21あり、空文字のものも含むと、遷移後の画面のURLがとても見にくいのです。 このようにパラメータを見やすくするようなjavascriptのコードを教えてください。 jQueryは1.7を使用しています。どうかよろしくお願いいたします。

  • 同一カラム内での日付のソート

    PHP5.2.6 MySQL 4.0.2 下記のカラムで日付の新しい順に表示させたいのですが、 MySQLの関数で可能なのでしょうか? [例] id|name|date1|title1|mes1|date2|title2|mes2|date3|title3|mes3|… 1|taro|2008-01-01|タイトル1|メッセージ1|2008-12-31|タイトル2|メッセージ2|2008-08-30|タイトル3|メッセージ3|… これを taro: 2008-01-01 タイトル1:メッセージ1 2008-08-30 タイトル3:メッセージ3 2008-12-31 タイトル2:メッセージ2 と表示させたいのですが、やはりPHPの範疇でしょうか? 宜しくお願い致します。

  • SQLのテーブルの特定カラムでループ検索?

    説明が苦手でご迷惑をおかけします。 [denwa_table] id name telno 1 田中 080888866XX 2 山田 090999988XX 3 佐藤 050333366XX このようなテーブルがあり、 別で取得した 「0125815846584123584090999988XX3254158912_3546842」 のような文字列にID何番の人の電話番号が含まれているか 検索するPHPを作成しています。 初心者なので、いろいろわからないのですが、 特に理解できていないのが複数行の配列の操作です。 $sql = "select telno from denwa_table"; 電話番号部分のカラムだけをとってきてとかやればいいのでしょうか? 検索する部分は strstr($data,$data2)を使ったらできそうですが、SQLからとってきた番号の配列をどうやってループさせたらいいのでしょうか? わからないことだらけなのですがよろしくお願いします。

    • ベストアンサー
    • PHP
  • SQL文で教えていただきたいのですが・・・

    現在、Windows版のMySQLを使っており、 webのサービスでログ解析を行っているのですが、初心者の私ではどうにもならなくなったのでご教授ください。 Table「info」:ユーザー登録DB | id | varchar(16) |←登録ID | name | varchar(50) |←登録名 | mail | varchar(50) |←登録メールアドレス Table「log」:ログインのログをとるテーブル | date | int(11) |←ログインした時間 | id | varchar(16) |←ログインしたID と言うデータベースがあり、登録ポリシーは「一つのメールアドレスで複数のIDを取得可能」というものです。 したがって、 aaa@bbb.com と言うメールアドレスで登録したIDは複数存在し、 AAA BBB CCC と言う3つをもっていることもあります。 ところが、ログはID単位でとっているため、メールアドレスが同じにもかかわらずこうなります。 +------------+-----+ | date | id | +------------+-----+ | 1068019110 | AAA | | 1068019200 | BBB | | 1068019209 | CCC | | 1068019210 | AAA | | 1068019213 | BBB | +------------+-----+ これでは、ログの集計をしても1人がログインした数を集計できません。メールアドレス別のログをとりたいのです。 単純に表にするのは select log.id, mail from log_login inner join info on info.id=log_login.id where mail='***@***.com' order by date; にすることでなんとかできたのですが、別に表にする必要はなく、アクセス数だけを知りたいのです。 どうやったらいいのでしょうか???

  • Oracle SQLの、where句内の条件文について教えてください。

    Oracle SQLの、where句内の条件文について教えてください。 下記SQLの(1)と(2)の記述文を教えてください。 (1)例:owner = sys,admin ownerがsysまたは、adminを抽出 (2)例:column_name = '*aaa*' column_nameに「aaa」が含まれているデータ SELECT owner, table_name,column_name FROM all_tab_columns WHERE (1)(Ownerを複数指定)   and (2)(column_nameに、●●が含まれるデータ)

  • SQLでご助言いただきたく。

    テーブル名:AAA カラム: 'fname' ,ename テーブル名:BBB カラム: "id",fcode テーブル名:CCC カラム : "id",'fname',date 上記三つのテーブルAAA,BBB,CCCにそれぞれカラムがあります。 最終的に ename fcode date の3カラムを結合した状態でSELECTします。 ただし、条件として AAAのfname列とCCCのfname列を紐付けし、尚且つ BBBのid列とCCCのid列を紐付けし、尚且つ CCCのdate列が2012-10-31以上のものだけをSELECTしたいです。 上記を踏まえて下記二点ご質問致します。 (1)私が考えたSQL文は select a.ename ,bc.fcode ,bc.date from AAA a , (select b.fcode ,c.fname ,c.date from BBB b , CCC c where b.id = c.id and c.date >= '2012-10-31' ) bc where a.fname = bc.fname ; です。先にBBBとCCCから紐付けしその結果とAAAを紐付けしています。 このSQL文で間違いがないかどうか判定していただきたく。 (2)もっとスマートな書き方(短く書けるなど)がありましたら、 ご助言いただきたく。 ちなみにデータベースはオラクル仕様です。 宜しくお願い致します。

  • エクセルの表の合体

    2つの表A,Bがあります。AとBは同じフィールド名を持っています。 Aが持つIDとBが持つIDが重複する場合,BのレコードをAに上書きし,重複しない場合はそれぞれのレコードを用いて新しい表Cを作りたいのですが,方法がわかりません。 どなたかご教授お願いいたします。 例) A表 ID,苗字,名前 0,佐藤,一郎 1,田中,太郎 2,山田,翔太 3,上田,大作 5,加藤,正和 B表 ID,苗字,名前 0,宮元,賢治 1,田中,太郎 2,山田,翔太 4,山下,謙一 5,上山,浩二 C表 ID,苗字,名前 0,宮元,賢治 1,田中,太郎 2,山田,翔太 3,上田,大作 4,山下,謙一 5,上山,浩二