IF ELSE语句并插入新列

Fut*_*han 2 sql oracle

我一直在网上尝试如何将"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)

Bar*_*mar 5

你可以使用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)


rad*_*dar 1

你可以像下面这样做

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)