【发布时间】:2026-02-06 08:00:02
【问题描述】:
在学生表中,我有 'null' 和 ('') 空单元格。有没有办法通过对每列使用不同的条件来更新多列?
我已经尝试了如下几个查询,但没有按计划进行
第一个:
update student_info SET email_id = Null, department = NULL, scholarship = NULL WHERE EXISTS (
SELECT email_id,department,scholarship from student_info WHERE
(email_id in ('null','') or department in ('null', '') or scholarship in ('null', '')));
GO
第二个:
UPDATE student_info SET
email_id = CASE WHEN ( email_id in ('null','')) THEN NULL END,
department = CASE WHEN (department in ('null','')) THEN NULL END,
scholarship = CASE WHEN (scholarship in ('null','')) THEN NULL END,
location = CASE WHEN (location in ('null','')) THEN NULL END
GO
我该如何解决这个问题?
表:
CREATE TABLE student_info ( student_id INT, email_id varchar(15), scholarship
VARCHAR(5),location varchar(20), department VARCHAR(15), phone varchar(15));
GO
价值:
INSERT INTO student_info
VALUES
(1002,'1002@uni.com', 'Yes', 'null','', '+00000002'),
(1003,'null', 'Yes', 'International','', '+00000003'),
(1004,'1004@uni.com', 'null', '','English', '+00000004'),
(1005,'null', 'Yes', 'Domestic','', '+00000005'),
(1006,'null', 'Yes', 'Domestic','English', ''),
(1007,'', 'Yes', 'Domestic','English', '+00000007'),
(1009,'1001@uni.com', 'null', 'Domestic','English', '+00000009');
GO
【问题讨论】:
-
NULL与'NULL'不同。列中的实际值是多少?另外你的预期输出是什么? -
根据问题指南,请不要发布代码、数据、错误消息等的图像 - 将文本复制或输入到问题中。请保留将图像用于图表或演示渲染错误,无法通过文本准确描述的事情。
标签: sql sql-server tsql sql-update