以下是示例代码:
DECLARE @ss varchar(60)
SET @ss = 'admin'
select TRIM(@ss)
我遇到了一个错误:
'TRIM' 不是一个可识别的内置函数名称
以下是示例代码:
DECLARE @ss varchar(60)
SET @ss = 'admin'
select TRIM(@ss)
我遇到了一个错误:
'TRIM' 不是一个可识别的内置函数名称
TRIM
是在 SQL Server 中引入的函数(从 2017 开始)。
在旧版本的 SQL Server 中,要执行 trim 操作,您必须像下面这样使用 LTRIM
和 RTRIM
。
DECLARE @ss varchar(60)
SET @ss = ' admin '
select RTRIM(LTRIM(@ss))
如果您不喜欢到处使用LTRIM
和RTRIM
,则可以创建自己的自定义函数,如下所示。
CREATE FUNCTION dbo.TRIM(@string NVARCHAR(max))
RETURNS NVARCHAR(max)
BEGIN
RETURN LTRIM(RTRIM(@string))
END
GO
TRIM
,因为它总是显示“'trim'不是一个被识别的内置函数名称。”结果我必须像这样使用它:dbo.TRIM
。 - Lam LeCREATE FUNCTION dbo.TRIM
必须被称为dbo.TRIM
而不是TRIM
),这是因为SQL Server解析未限定标识符的方式 - 这并不理想,但是其他选择更糟糕。阅读此链接:https://dba.stackexchange.com/questions/1221/why-cant-i-call-my-udf-directly-why-do-i-need-to-qualify-it-3-levels-deep - undefinedSELECT compatibility_level FROM sys.databases
SQL Server 2017是140
如果版本过低,则无法识别TRIM
要将兼容版本更改为SQL Server 2017
ALTER DATABASE database_name
SET COMPATIBILITY_LEVEL = 140
要查看每个 SQL Server 版本支持的兼容性级别列表,请查看 ALTER DATABASE (Transact-SQL) Compatibility Level.
根据下面的评论,您安装的 SQL Server 版本是 SQL 2016。您需要安装 SQL Sever 2017 才能获得 TRIM
。
SELECT RTRIM (LTRIM (' JKL ')) AS Trimmed
'JKL'
这个结果。
SQL Server 2017
运行良好。 - SquirrelSELECT compatibility_level FROM sys.databases
。它需要设置为 140。 - Nick.McDermaid