【问题标题】:how to set the value of the column in a select statement in oracle?oracle的select语句中如何设置列的值?
【发布时间】:2014-10-23 04:42:14
【问题描述】:

如果满足某个条件,如何更改列的输出值及其列名? 假设我有表 A,它有 3 列 身份证、称呼、姓名、姓氏、性别

我可以选择所有这些

select * from A

如果我想根据数据行的性别输出称呼的值怎么办? 在select语句中怎么做,伪代码是这样的

select everything, if the gender is Male, then set salutation to Mr. else, set salutation to Ms. but then change the salutation into alias namePrefix

如何在 oracle 的纯 select 语句中做到这一点?

【问题讨论】:

    标签: sql oracle


    【解决方案1】:

    CASE 声明似乎正是您所需要的。你可以这样做:

    select yourtable.*,
    case when gender = 'Male' then 'Mr. ' || name else 'Ms. ' || name end as namePrefix
    from yourtable
    

    CASE 语句将帮助您为表中的每一行生成计算列namePrefix,这样Mr.Ms. 的前缀将基于该行中gender 列的值。

    【讨论】:

    • SQL中的字符串连接运算符是||而不是+
    • 我们在 Oracle 数据库中,所以我们也可以使用 DECODE。"Decode(gender,'Male','Mr.','Ms.')||name as namePrefix"。这一切都归结为偏好。
    猜你喜欢
    • 2019-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-05
    相关资源
    最近更新 更多