首页 > 解决方案 > 对于查询中的某些条件,如何将字段值更改为 null?

问题描述

我有一个查询,我使用 TSQL 从表中选择数据。当其中一个字段(field1)具有特定值时,我想根据 field1 的值将其他两个字段(field2 和 field3)的值更改为 NULL。我浏览了堆栈溢出,并看到许多答案说要像这样更新表:

UPDATE MyTable
SET MyField = NULL
WHERE MyField = ''

但是更新改变了一张桌子,对吧?我不想更改我的表格数据。我想更改我的查询结果。有没有办法像我想要的那样更改查询结果?

标签: tsqlnull

解决方案


CASE (Transact-SQL)文档中所述:

WITH Data (value) AS   
(   
SELECT 0   
UNION ALL   
SELECT 1   
)   
SELECT   
   CASE   
      WHEN MIN(value) <= 0 THEN 0   
      WHEN MAX(1/value) >= 100 THEN 1   
   END   
FROM Data ;

或者在你的情况下:

SELECT
    MyField = CASE
        WHEN MyField = '' THEN NULL
        ELSE MyField
    END
FROM MyTable

推荐阅读