查询 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 只是名称上的函数,本质上它是一个 shorthand,扩展到 CASE 语句的宏替换。

这种密切的关系可能是您在撰写声明时弄错 IFCASE 的原因。

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

现在看来,你的说法不真实。您指的是 TABLE.CODTABLE.VALUE - 这些显然是来自第二 table 的一些字段,但您忘记将其包含在 FROM 子句中!

因此,我认为您真正需要的可能不是一些 condition/calculation,而是一个普通的 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