こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

結果にテーブル上存在しない列&値をつけたい。

SELECT
ID,
NAME
FROM TEST

たとえば上記の結果で
ID NAME
1 'A'
2 'B'
3 'C'
4 'D'
5 'E'

と返ってくるとします。
これにテーブルには存在しない列をつけて、かつ、
こちらで指定した値を入れたいのですが可能でしょうか。

ID NAME VALUE
1 'A' 'あ'
2 'B' 'い'
3 'C' 'う'
4 'D' 'え'
5 'E' 'お'

こうしたいのです。

SELECT
ID,
NAME,
'あ' AS VALUE
FROM TEST

これだと全て「あ」になってしまいますし…。

可能であればご教授いただけないでしょうか。

投稿日時 - 2014-04-01 15:06:35

QNo.8537447

困ってます

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

こんにちは。
イノ(inno)です。

CASE文を使えばできます。
もしくはJOINでもできますが、今回はCASE文を利用する方法を説明します。
下記のSQLを実行してみてください。

-- #### テストテーブル作成
CREATE TABLE dbo.Test
(
[ID] int
,[NAME] varchar(10)
)

-- #### テストデータ登録
INSERT INTO dbo.Test
SELECT 1, 'A' UNION ALL
SELECT 2, 'B' UNION ALL
SELECT 3, 'C' UNION ALL
SELECT 4, 'D' UNION ALL
SELECT 5, 'E'

-- #### 結果SQL
SELECT [ID], [NAME]
, CASE [NAME]
WHEN 'A' THEN N'あ'
WHEN 'B' THEN N'い'
WHEN 'C' THEN N'う'
WHEN 'D' THEN N'え'
WHEN 'E' THEN N'お'
ELSE '' END AS [VALUE]
FROM dbo.Test

-- #### 結果
IDNAMEVALUE
1Aあ
2Bい
3Cう
4Dえ
5Eお

投稿日時 - 2014-04-03 17:33:59

ANo.2

このQ&Aは役に立ちましたか?

11人が「このQ&Aが役に立った」と投票しています

-広告-
-広告-

回答(2)

ANo.1

VALUEの値がIDやNAMEに連動して決まるのならIFやCASEを使うという手がありますし、別テーブルを作って結合させて取得する方法もあります。

投稿日時 - 2014-04-01 15:15:52

-広告-
-広告-

あなたにオススメの質問

-広告-
-広告-