如何更改字母SQL服务器?

How to change letter SQL Server?

我更改单词字母(更改 5 和 6 字母)和一些字母掩码。但是我接受了错误更改信,我没有做屏蔽。

我的查询:

SELECT
    NAME,
    CONCAT(SUBSTRING(NAME, 1, 4),
           SUBSTRING (NAME, 6, 1),
           SUBSTRING(NAME, 5, 1),
           SUBSTRING(NAME, 7, LEN(NAME) -5))
FROM
    INFORMATION

这个错误是

Invalid length parameter passed to the LEFT or SUBSTRING function.

我该怎么办? (SQL 服务器 2014。)

您遇到的问题是您将 -5 传递给小于 5 的列 "NAME" 的长度,并且函数 SUBSTRING 不能接受负值。如果你想避免你总是可以添加 ABS 到你的表达,但是,你需要验证它返回你所期望的:

SELECT
    NAME,
    CONCAT(SUBSTRING(NAME, 1, 4),
           SUBSTRING(NAME, 6, 1),
           SUBSTRING(NAME, 5, 1),
           SUBSTRING(NAME, 7, ABS(LEN(NAME) -5)))
FROM
    INFORMATION