簡體   English   中英

Teradata中的SQL案例語句

[英]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的表。 這樣的事情可能發生嗎,還是我會以錯誤的方式解決?

如果DESTINATIONSGAS_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM