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

标签 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

我想选择一些行并根据条件添加一个值。因此结果将类似于以下内容:
Company   Rate   Period    Currency
1A        50     oct-16    USD
1C        30     oct-16    AED

在上表中,我仅选择“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';

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

最佳答案

是的,可以使用案例条件:

    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')

关于sql - 选择条件并根据条件SQL生成新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40487324/

相关文章:

sql - 当一列是文本而另一列是数字时,内部连接两个表

mysql - 将 SQL 表复制到新表中,仅适用于比给定日期更新的记录

oracle - DBMS_STANDARD 包的过程和/或函数是否应该在 PL/SQL 代码中使用?

MySQL SELECT 不适用于包含换行符的文本

mysql - SQL:链接两个表

sql - 如何设置 SQL Server 代理?不在 Sql Server 管理中显示

php - CodeIgniter - 从主 SQL 文件创建多个数据库

sql select语句提供更多行然后记录在表中

sql - 检查当前日期是否在两个日期之间 Oracle SQL

MySQL SELECT CASE WHEN something THEN 返回 null