質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

Q&A

2回答

1645閲覧

1つのテーブルから区分別にセレクトを行う

coko1

総合スコア276

PostgreSQL

PostgreSQLはオープンソースのオブジェクトリレーショナルデータベース管理システムです。 Oracle Databaseで使われるPL/SQLを参考に実装されたビルトイン言語で、Windows、 Mac、Linux、UNIX、MSなどいくつものプラットフォームに対応しています。

0グッド

0クリップ

投稿2017/03/17 05:12

編集2017/03/17 06:46

テーブル:kbn_table
keykbn | kbn | kbn_name
001 01 男性
001 02 女性
002 01 会社員
002 02 アルバイト
003 01 携帯電話
003 02 固定電話

上記のようなテーブルがあり、そこから下記のようにkeykbnごとに別名を付けてデータを取得したいのです。
001 as sex_kbn(性別区分)
002 as occupation_kbn(職業区分)
003 as ontact_address_kbn(連絡先区分)

どのようにしたら取得できるでしょうか?
お力を貸してくださると助かります。

以下取得イメージになります。

//取得イメージ { "sex_kbn": [ { "kbn": "01", "kbn_name": "男性" }, { "kbn": "02", "kbn_name": "女性" } ], "ontact_address_kbn": [ { "kbn": "01", "kbn_name": "会社員" }, { "kbn": "02", "kbn_name": "アルバイト" } ] }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

SVC34

2017/03/17 09:47

取得イメージはテーブル形式で
guest

回答2

0

case を使われては?

投稿2017/03/17 06:02

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

coko1

2017/03/17 07:04

case文を使ったことがないのですが、上記のような取得イメージでデータをとれますでしょうか?
Orlofsky

2017/03/17 09:15

はい、マニュアルの使用例を見れば書けますよね。
Orlofsky

2017/03/17 09:18

通常、テーブル設計では1つの列には1つの意味しか持たせないので、 ttyp03さんのような懸念されたコメントが付きます。
guest

0

データベースは取得する各レコードのカラム名は同一になるので、質問にあるようにレコードによってはカラム名が変わるような使い方はできないのではないかと思います。
面倒ですが、3回クエリを投げるのが妥当ではないでしょうか。

SQL

1select keykbn as sex_kbn from kbn_table where keykbn='001' 2select keykbn as occupation_kbnfrom kbn_table where keykbn='002' 3select keykbn as ontact_address_kbnfrom kbn_table where keykbn='003'

投稿2017/03/17 08:11

ttyp03

総合スコア16998

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問