我正在尝试创建一个代码,该代码将根据一组标准对特定列进行不同的更新。
我在客户记录中有名字。现在我需要根据标题中的数据更新 FirstName。
逻辑应该是这样的......
UPDATE Customer
SET FirstName = If TITLE contains special characters
THEN set firstname to blank
ELSE
SET it to FirstName
From Customer c
INNER JOIN CustomerList cl
on c.customerid = cl.customerid
我在处理特殊字符的逻辑时遇到了麻烦。我不确定是在 CASE 还是 IF 和 CASE 语句中使用 CASE。我可以使用以下代码识别特殊字符:
SELECT title FROM Customer where LTRIM(RTRIM(title)) NOT LIKE '%[`'' -''|-~.,-@!#$^&*()<>:;''"_+\/=?0-9]%'
我试图将其合并到我的 CASE 中,但出现语法错误。
有关解决此问题的最佳方法的任何建议?
到目前为止,我的代码是这样的......
SELECT ID, CASE LTRIM(RTRIM(title))
WHEN Title NOT LIKE '%[`'' -''|-~.,-@!#$^&*()<>:;''"_+\/=?0-9]%' AND RTRIM(LTRIM(title)) NOT IN ('MR', 'MS', 'MRS', 'Miss', 'MSTR', 'MR.', 'MS.', 'MRS.', 'CHD', 'CHIL', 'CHLD', 'DR', 'DR.', 'MAST',''))
THEN title
END
FROM customer