选择行并根据条件 SQL 生成新列

ShB*_*ShB 6 sql oracle select

我在 Oracle 中有下表

Company   Rate   Period
1A        10     sep-16
1B        20     sep-15
1C        30     oct-16
1D        40     sep-16
1A        50     oct-16
2B        50     sep-15
1C        60     oct-14
Run Code Online (Sandbox Code Playgroud)

我想选择一些行并根据条件添加一个值。所以结果将类似于以下内容:

Company   Rate   Period    Currency
1A        50     oct-16    USD
1C        30     oct-16    AED
Run Code Online (Sandbox Code Playgroud)

在上表中,我仅选择了 Period ='oct-16' 的公司 1A、1C。我需要为每家公司添加一列“货币”,其中 1A=USD,1C=AED

我所做的是:

select company, PERIOD , Rate 
from TABLE_test 
where period='Oct-16' And Company='1A' 
    OR period='Oct-16' and Company='1C';
Run Code Online (Sandbox Code Playgroud)

我设法找到了这些公司,但在货币栏上失败了。这可以使用 SQL 命令吗?请帮忙。

Bha*_*ara 8

是的,可以使用 case 条件:

    SELECT COMPANY,RATE,PERIOD,(CASE WHEN COMPANY='1A' THEN 'USD' 
                                     WHEN COMPANY='1C' THEN 'AED' END
                                    )CURRENCY
    FROM TABLE_TEST
    WHERE PERIOD='oct-16'
    AND COMPANY IN ('1A','1C')
Run Code Online (Sandbox Code Playgroud)