[英]SQL case statement in Teradata
我正在嘗試在Teradata中編寫一個簡單的IF / ELSE語句。 據我了解,您必須使用CASE。 我想做的是編寫一條語句,該語句將檢查列是否不為空並顯示某些內容。 如果為NULL,則顯示其他內容。
我發現的每個示例都只是用硬編碼的字符串或整數替換單個值。 我正在尋找更多類似的東西,它使用THEN語句進行另一個SELECT:
SELECT CARS.VIN_NUM, CARS.DRIVER_NAMES
CASE
WHEN CARS.FUEL IS NOT NULL THEN SELECT CARS.DESTINATIONS
WHEN CARS.FUEL IS NULL THEN SELECT CARS.GAS_STATIONS
END
FROM AUTOMOBILES CARS
WHERE CARS.VIN_NUM IN
('345353',
'354632',
'535231')
ORDER BY CARS.VIN_NUM
最終結果應該是一個基於CASE顯示VIN_NUM,DRIVER_NAMES,DESTINATIONS或GAS_STATIONS的表。 這樣的事情可能發生嗎,還是我會以錯誤的方式解決?
如果DESTINATIONS
和GAS_STATIONS
是表AUTOMOBILES
(別名CARS
)中的列,則以下內容應工作:
SELECT CARS.VIN_NUM,
CARS.DRIVER_NAMES,
CASE
WHEN CARS.FUEL IS NOT NULL THEN CARS.DESTINATIONS
ELSE CARS.GAS_STATIONS
END
FROM AUTOMOBILES CARS
WHERE CARS.VIN_NUM IN
('345353',
'354632',
'535231')
ORDER BY CARS.VIN_NUM;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.