FROM
の閉じ括弧が欠落しているため、構文 near は好きではありませんLEFT
。あなたが望むのは次のようなものだと思います:
SELECT CASE WHEN IV00103.VNDITNUM LIKE 'DOR%' THEN LEFT(IV00103.VNDITNUM,(LEN(IV00103.VNDITNUM)-2)) ELSE IV00103.VNDITNUM END AS VNDITNUM
FROM IV00103
これにより、IV00103 テーブルから絶対にすべてが選択され、VNDITNUM
列の値が で始まる最後の 2 文字のみが削除され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 '\'
これはエスケープされたアンダースコアであり、実際の\_
アンダースコアとして扱われます。この部分は、文字がパターン内の特殊文字をエスケープするために使用されていることを SQL に伝えます。2 番目は特殊文字で、1 文字に一致します。ESCAPE '\'
\
_