[英]Query SELECT calculated column with condition
我需要在我的 SELECT QUERY 中創建一個有條件的列。 像這樣的東西:
SELECT NAME, ADDRESS, IF TABLE.COD=101 THEN return TABLE.VALUE AS TABLE
FROM CRM
所以 SELECT 中的第三個參數是我計算出的帶有條件的列。
我相信這很簡單,但我沒有成功解決這個問題。
由於您尚未提供任何數據和預期輸出,因此很難弄清楚您到底想要什么。 你仍然可以嘗試下面的一個。
SELECT NAME, ADDRESS, (Case WHEN TABLE.COD=101 THEN TABLE.VALUE END) AS TABLE
FROM CRM
另一種選擇是使用IIF
函數。
https://firebirdsql.org/refdocs/langrefupd20-iif.html
坦率地說,IIF 只是名稱上的函數,本質上它是一種速記,是擴展到CASE
語句中的宏替換。
這種密切的關系可能就是你在寫你的陳述時把IF
和CASE
弄錯的原因。
SELECT NAME, ADDRESS, IIF(TABLE.COD=101, TABLE.VALUE, NULL) as TABLE FROM CRM
現在,你的說法似乎不真實。 您引用了TABLE.COD
和TABLE.VALUE
- 這些顯然是第二個表中的一些字段,但您忘記將其包含在您的FROM
子句中!
因此,我認為您真正需要的不是一些條件/計算,而是一個普通的舊OUTER JOIN
。
https://en.wikipedia.org/wiki/Join_(SQL)
SELECT A.NAME, A,ADDRESS, B.VALUE as TABLE
FROM CRM A
LEFT JOIN SomeTable B ON B.COD=101 AND B.XXXX = A.YYYY
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.