tsql - 对于查询中的某些条件,如何将字段值更改为 null?
问题描述
我有一个查询,我使用 TSQL 从表中选择数据。当其中一个字段(field1)具有特定值时,我想根据 field1 的值将其他两个字段(field2 和 field3)的值更改为 NULL。我浏览了堆栈溢出,并看到许多答案说要像这样更新表:
UPDATE MyTable
SET MyField = NULL
WHERE MyField = ''
但是更新改变了一张桌子,对吧?我不想更改我的表格数据。我想更改我的查询结果。有没有办法像我想要的那样更改查询结果?
解决方案
如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
推荐阅读
- date - Teradata - 计算年龄超过 20 岁的客户
- react-native - React-Native 滚动到索引不起作用
- javascript - Angular Typescript 仅在它们不为空时才发送可选的 restful url 参数
- java - 使用 Java 的 Facebook API - NullPointerException 错误
- tensorflow - tensorflow.python.framework 的操作有什么用?
- javascript - 将表格行和以下单元格设为必填字段
- c++ - 如何访问整个地图的值
- c# - c#中的I/O级联
- ios - 在捆绑资源 ios 离子目标 c 中打印时,Json 文件为空
- php - 在 PHP 中存储兄弟元素的属性和内部 html