我正在尝试更新这个表的status
列,我使用了以下命令:
UPDATE table_a
SET status = CASE
WHEN test_group LIKE 'Control' THEN 0
WHEN test_group NOT LIKE 'Control' THEN 1
END;
但它似乎没有工作,它实际上只是给status
的每个观察值一个1。我只想要有"控制"这个词的观察结果;在status
和没有"控制"这个词的观察中取0;取1。此列的默认值不是0或1。
您不需要第二个条件。但是您确实需要LIKE
的通配符。我建议:
UPDATE table_a
SET status = (CASE WHEN test_group LIKE '%Control%' THEN 0 ELSE 1 END);
在许多数据库中,可以将其简化为:
UPDATE table_a
SET status = (test_group NOT LIKE '%Control%');
Try this (T-SQL):
UPDATE table_a
SET status = CASE
WHEN charindex('Control', test_group)>0 THEN 0
ELSE 1
END;
UPDATE table_a
SET status = CASE
WHEN test_group LIKE '%Control%' THEN 0
WHEN test_group NOT LIKE '%Control%' THEN 1
END;