[pgsql-jp: 37223] Re: フィールドの値で選択する他のフィールドを変えられますか?
川上 雅志
masashi.kawakami @ jcom.home.ne.jp
2006年 6月 15日 (木) 23:53:49 JST
ご苦労様です、川上です。
> |生徒ID|現在の学年|1年次の組|1年次の番号|2年次の組|2年次の番
> 号|3年次の組|3年次の番号| 姓 |‥‥
>
> 生徒IDから現在の学年,組,番号を SQL で選択する方法というのは
> あるのでしょうか。
このテーブル構造のままで、ということであれば
SELECT 生徒ID, 現在の学年,
CASE 現在の学年
WHEN 1 THEN 1年次の組
WHEN 2 THEN 2年次の組
ELSE 3年次の組
END AS 組,
CASE 現在の学年
WHEN 1 THEN 1年次の番号
WHEN 2 THEN 2年次の番号
ELSE 3年次の番号
END AS 番号
というSQLで取得することが出来ます。
http://www.postgresql.jp/document/pg814doc/html/functions-conditional.html#AEN12600
しかしながら、テーブルの作り方に問題があると思います。
|生徒ID|現在の学年| というテーブル(A)と
|生徒ID|年次|組|番号| というテーブル(B)を作りましょう。
SELECT A.生徒ID, A.現在の学年, B.組, B.番号
FROM A, B
WHERE A.生徒ID = B.生徒ID
AND A.現在の学年 = B.年次
というSQLでお望みのデータを取得することが出来ます。
--
dbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdbdb
川上 雅志 masashi.kawakami @ jcom.home.ne.jp
qpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqpqp
pgsql-jp メーリングリストの案内