簡體   English   中英

查詢帶條件的 SELECT 計算列

[英]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語句中的宏替換。

這種密切的關系可能就是你在寫你的陳述時把IFCASE弄錯的原因。

 SELECT NAME, ADDRESS, IIF(TABLE.COD=101, TABLE.VALUE, NULL) as TABLE FROM CRM

現在,你的說法似乎不真實。 您引用了TABLE.CODTABLE.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.

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