我一直在网上尝试如何将"If"语句组合到我的查询中.假设我想创建一个查询,这样我想创建一个名为"描述"一个额外的列,然后包括如果else语句这样说:"如果Value ='A’,则说明='A’,如果值='B’然后说明="B",等等等等.问题是,因为我有最小的访问权限(而不是管理)的数据库.我无法创建表.我只能查询表中的预言和出口出来.在创建额外列时,这会是一个问题吗?
原版的:
ID Value
1 A
2 B
3 C
Run Code Online (Sandbox Code Playgroud)
想要的东西:
ID Value Description(New Column)
1 A Apple
2 B Bacon
3 C Candy
Run Code Online (Sandbox Code Playgroud)
好的.我不知道我在下面做了什么,但它会是那样的?我在哪里插入一个名为"描述"的新列?
Select A.ID, B.Value
From Table A
Join Table B
On A.ID = B.ID
Where ID in ('1','2','3')
If b.Value = 'A' then
(Description = "Apple")
If b. value = 'B' then
(Description = "Bacon")
Group by A.ID, B.Value
Run Code Online (Sandbox Code Playgroud)
你可以使用CASE:
SELECT A.ID, B.Value,
CASE B.Value
WHEN 'A' THEN 'Apple'
WHEN 'B' THEN 'Bacon'
WHEN 'C' THEN 'Candy'
END AS Description
FROM TableA A
JOIN TableB B ON A.ID = B.ID
Run Code Online (Sandbox Code Playgroud)
你可以像下面这样做
SELECT A.ID, A.Value, B.Description
FROM TABLEA A
JOIN ( SELECT 'A' as Value, 'Apple' as Description from dual
UNION
SELECT 'B' as Value, 'Bacon' as Description from dual
) T
on A.Value= B.Value
Run Code Online (Sandbox Code Playgroud)