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