[英]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.