繁体   English   中英

使用案例根据另一个字段的值选择字段

[英]Using case to select field based on value of another field

我有一个数据库,三个字段:预订类型,预订编号和预订日期。 一些值是

 Bookingtype Bookingnum date
 main        0001       10-11-15
 main        0002       09-11-15
 sub         0002a      12-12-15

我需要为每个记录的日期写一条选择语句。 但是,如果预订类型为子预订,则应从主预订日期中获取日期。 在这种情况下,预订2a的日期应为09-11-5。我使用的是postgres 9.3,并简化了字段,以使其他人更容易理解我的需求。

假设您的主要电话号码始终是Bookingnum的前4个字符(缺少明确的定义):

SELECT b.Bookingtype, b.Bookingnum
     , COALESCE(main.date, b.date) AS date
FROM   bookings b
LEFT   JOIN bookings main ON b.Bookingtype = 'sub'
                         AND main.Bookingnum = left(b.Bookingnum, 4);

我会考虑到主行的外键列(自我引用)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM