我试图构造一个SQL语句,该语句执行以下操作:

对于特定表的特定行,对于值={}的所有列,将值设为NULL

例如:

表XYZ:

"col_id"    "col2"  "col3"  "col4"  "col5"

1234        {}       {}     PDQ      ABC
5678        {DO}     {RE}   DEF      HIJ
5678        {MI}     {}   ABC      PDQ

如果需要:对于表XYZ,其中col_id=1234,使所有值为{}null的列,

结果是:

"col_id"    "col2"  "col3"  "col4"  "col5"

1234        NULL     NULL     PDQ      ABC
5678        {DO}     {RE}   DEF      HIJ
5678        {MI}     {}   ABC      PDQ

感谢您的帮助.非常感谢.

推荐答案

使用NULLIF:

UPDATE XYZ set col2 = NULLIF(col2, '{}') ... where customer_id = 1234`

任何={}的现有值都将转换为NULL.UPDATE需要更新以指定的列,这样您就无法不命名它们.

Sql相关问答推荐

GROUP BY和GROUP_CONCAT用于计算比赛排名

如何使用ROW_NUM() Select 一个没有第二条记录的实例?

如何根据同一表中某一列中的值重新排列行(仅输出它们)(重新排序)?

重新组合已排序的日期范围

编写一个SQL查询来返回收视率较高的类型,并取这些收视率的平均值,我该如何做呢?

你能过滤一个列表只返回多个结果吗?

返回找到的最小和最大row_number()spark SQL

用户购买平台及金额统计

TSQL如何为群分配号码

使用递归CTE在BigQuery中获取文件路径

使用左外部联接更正列中第+1行的值时重复

将SQL Server查询改进为;线程安全;

在 SQL Server 中合并两个 XML 列

删除重复记录但保留最新的SQL查询

查询以查找今天和昨天的数据之间的差异以及伪列

编写查询以根据级别 (p2) 返回父位置

更新表 A,然后将新值插入表 B(包含更新内容的历史日志(log))

过滤具有一对多关系的两个表之间的数据

如何根据 Amazon Athena 中的多个列值删除重复行?

在sql server中创建唯一标识符列