它不喜欢附近的语法,FROM
因为您在LEFT
. 我怀疑你想要的是这样的:
SELECT CASE WHEN IV00103.VNDITNUM LIKE 'DOR%' THEN LEFT(IV00103.VNDITNUM,(LEN(IV00103.VNDITNUM)-2)) ELSE IV00103.VNDITNUM END AS VNDITNUM
FROM IV00103
VNDITNUM
这绝对会从 IV00103 表中选择所有内容,仅从以 .开头的列中具有值的那些字符中删除最后两个字符DOR
。
编辑:如果您想实际更新表的内容,您可以使用 WHERE:
UPDATE IV00103
SET VNDITNUM = LEFT(IV00103.VNDITNUM,(LEN(IV00103.VNDITNUM)-2))
WHERE VNDITNUM LIKE 'DOR%'
如果您只需要与模式匹配的那些,DOR-somecharacters_asinglecharacter
那么您可能应该这样做:
UPDATE IV00103
SET VNDITNUM = LEFT(IV00103.VNDITNUM,(LEN(IV00103.VNDITNUM)-2))
WHERE VNDITNUM LIKE 'DOR-%\__' ESCAPE '\'
这\_
是一个转义的下划线,将被视为实际的下划线。该ESCAPE '\'
部分告诉 SQL 该\
字符用于转义模式中的特殊字符。第二个_
是特殊字符,匹配单个字符。