sql - 将三个 SQL 更新语句合二为一
问题描述
我可以在一个而不是三个中运行这 3 个更新语句吗?我只能找到有关如何执行此操作的 mysql 示例
update [NoteAlertLog]
set alertmessage = NULL where alertmessage = ''
update [NoteAlertLog]
set notes = NULL where cast([notes] as nvarchar(max)) = ''
update [NoteAlertLog]
set externalnotes = NULL where cast(externalnotes as nvarchar(max)) = ''
我试过这样但得到一个语法错误:
update [NoteAlertLog]
set alertmessage = NULL where alertmessage = ''
,set notes = NULL where cast([filenotes] as nvarchar(max)) = ''
,set externalnotes = NULL where cast(externalnotes as nvarchar(max)) = ''
我试过没有set
:
update [NoteAlertLog]
set alertmessage = NULL where alertmessage = ''
,notes = NULL where cast([filenotes] as nvarchar(max)) = ''
,externalnotes = NULL where cast(externalnotes as nvarchar(max)) = ''
解决方案
使用case
表达式:
update [NoteAlertLog]
set alertmessage = case when alertmessage = '' then NULL else alertmessage end,
notes = case when cast([notes] as nvarchar(max)) = '' then NULL else notes end,
externalnotes = case when cast(externalnotes as nvarchar(max)) = '' then NULL else externalnotes end
where alertmessage = ''
or cast([notes] as nvarchar(max)) = ''
or cast(externalnotes as nvarchar(max)) = ''
where
可以跳过该子句,但我会保留它以降低事务大小。
推荐阅读
- javascript - 尝试分配给 React Native 组件中的只读属性
- python - How to extract color features via histogram from a masked image?
- python - scipy优化中的自定义收敛标准
- java - 检查我的世界服务器是否启用了白名单
- list - Understanding function with <|> operator
- java - 如何将json转换为地图
确保整数将是整数 - css - b-list-group 和 b-list-group-item 的 BootstrapVue 样式
- python - 没有获得多处理 netmiko 多个设备的输出
- mysql - Can't connect to a DB: database is closed
- python - Python SkLearn: ValueError: Found input variables with inconsistent numbers samples: [1173, 294]