1

我的表中有一个名为“BanquetPrize”的列和另一个名为“PrizeWinner”的列。如果“BanquetPrize”字段为NOT NULL,我希望“PrizeWinner”字段自动填写“YES”,如果是IS NULL,则应为“NO”。(坚持)

我对 SQL 非常陌生,并且来自表达式本来应该是的 DBF 表:

IF(IsNotBlank(BanquetPrize), "YES", "NO")

但我不知道如何用 SQL 编写它。我试过的:

(IIF [BanquetPrize]isnotnull then 'YES' else 'NO' end)
-- and also  --
(case when [BanquetPrize]isnotnull then 'YES' else 'NO' end)

显然这两种语法都是错误的,所以我希望有人能教我正确的写法吗?

4

2 回答 2

0

在 SQL 中你要使用IS NULL如下代码所示

CASE [BanquetPrize]
 WHEN IS NULL THEN 'NO'
 ELSE 'YES'
END 

您还可以执行以下操作来为返回列命名,在这种情况下,我为其命名与BanquetPrize列相同

CASE [BanquetPrize]
 WHEN IS NULL THEN 'NO'
 ELSE 'YES'
END AS 'BanquetPrize'

ORDER BY在子句中使用 CASE 时的附加示例

SELECT CustomerName, City, Country
FROM Customers
ORDER BY
(CASE
    WHEN City IS NULL THEN Country
    ELSE City
END);

在此处阅读有关 SQLCASE语句和使用的更多信息https://www.w3schools.com/sql/sql_case.aspIS NULL

于 2020-01-17T07:42:03.113 回答
0

您可以使用 CASE 或 IIF

案子

SELECT BanquetPrize, CASE WHEN BanquetPrize IS NOT NULL THEN 'YES' ELSE 'NO' END as PrizeWinner
FROM t1;

国际金融协会

SELECT BanquetPrize, IIF(BanquetPrize iS NOT NULL,'YES','NO') as PrizeWinner
FROM t1;

演示

于 2020-01-17T08:08:27.590 回答