SQL Server - 更新表而不知道列只是值

时间:2016-10-12 09:27:39

标签: sql sql-server-2008

希望有人能帮我解决问题...

如何用这个更新我的表:我有价值,例如。 'April 28, 2017'

我需要找到包含该值的列。

我的专栏看起来像这样:

train_date | train_date1 | train_date2 | train_date3 | train_date4 | train_date5 | train_date6

然后,包含该值的表格将更新为NULL

感谢。

1 个答案:

答案 0 :(得分:1)

您的意思是将包含特定值的列更新为 NULL 吗?然后,您可以使用 CASE 条件检查列是否包含该值,然后将其更新为 NULL ,否则保持原样。

UPDATE traintable
SET train_date = CASE WHEN train_date  = 'April 28, 2017' THEN NULL ELSE train_date  END,
train_date1 = CASE WHEN train_date1  = 'April 28, 2017' THEN NULL ELSE train_date1  END,
train_date2 = CASE WHEN train_date2  = 'April 28, 2017' THEN NULL ELSE train_date2  END,
train_date3 = CASE WHEN train_date3  = 'April 28, 2017' THEN NULL ELSE train_date3  END,
train_date4 = CASE WHEN train_date4  = 'April 28, 2017' THEN NULL ELSE train_date4  END,
train_date5 = CASE WHEN train_date5  = 'April 28, 2017' THEN NULL ELSE train_date5  END,
train_date6 = CASE WHEN train_date6  = 'April 28, 2017' THEN NULL ELSE train_date6  END