如何更改字母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
我更改单词字母(更改 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