假设我有以下查询:
SELECT names, color
FROM my_dataset
WHERE date='2013-07-18'
这输出:
John 0
David 1
Mary 0
Bill 0
Joe 2
问题是“颜色”列是整数。是否可以在某处输入键/特征图,以便输出可以是(0=GREEN,1=BLUE,3=RED)?
假设我有以下查询:
SELECT names, color
FROM my_dataset
WHERE date='2013-07-18'
这输出:
John 0
David 1
Mary 0
Bill 0
Joe 2
问题是“颜色”列是整数。是否可以在某处输入键/特征图,以便输出可以是(0=GREEN,1=BLUE,3=RED)?
这取决于您的 sql 方言。例如,您可以case
在 MS SQL 中使用
select names,
case color
when 0 then 'green'
when 1 then 'blue'
when 2 then 'red'
else null
end as color
from my_dataset
在 Oracle 中,有一个decode
函数。
或者只是制作一个带有键/名称映射的表并将其与您的数据连接起来。
您可以使用CASE
:
SELECT
names,
CASE color
WHEN 0 then 'Green'
WHEN 1 then 'Blue'
WHEN 2 then 'Red'
ELSE '???' END
As
Color
FROM
my_dataset
WHERE
date='2013-07-18'
利用decode
SELECT names, DECODE( color, 0, 'GREEN',
1, 'BLUE',
2, 'RED',
'UNKNOW'
) as true_color
FROM my_dataset
WHERE date='2013-07-18'
您可以When case
通过为数字提供别名来使用子句
SELECT names,(CASE color
WHEN 0 THEN 'GREEN'
WHEN 1 THEN 'BLUE'
WHEN 3 THEN 'RED'
ELSE '' END
) AS color
FROM my_dataset WHERE date='2013-07-18'