TRIM不是公认的内置函数名称

sat*_*ish 10 sql t-sql sql-server

对于以下代码:

DECLARE @ss varchar(60)
  SET @ss = 'admin'

  select TRIM(@ss)
Run Code Online (Sandbox Code Playgroud)

我有一个错误:

"TRIM"不是公认的内置函数名称

PSK*_*PSK 14

TRIM 在SQL Server中引入(从2017年开始).

在旧版本的SQL Server中执行修剪,您必须使用LTRIMRTRIM喜欢以下内容.

DECLARE @ss varchar(60)
  SET @ss = ' admin '

  select RTRIM(LTRIM(@ss))
Run Code Online (Sandbox Code Playgroud)

如果您不喜欢使用LTRIM,RTRIM,您可以创建自己的自定义函数,如下所示.

   CREATE FUNCTION dbo.TRIM(@string NVARCHAR(max))
    RETURNS NVARCHAR(max)
     BEGIN
      RETURN LTRIM(RTRIM(@string))
     END
    GO
Run Code Online (Sandbox Code Playgroud)

  • 我是 SQL 的业余爱好者。虽然我已经定义了该函数,但我想知道为什么我不能使用`TRIM`,因为它总是说`'trim'不是一个可识别的内置函数名称。`结果我必须像这样使用`dbo.TRIM`。 (2认同)

SQL*_*L_M 5

您可以将此代码用于旧版本:

SELECT RTRIM (LTRIM (' JKL ')) AS Trimmed
Run Code Online (Sandbox Code Playgroud)

这导致 'JKL'


Nic*_*aid 5

也许将其设置为较早的兼容性级别。

使用它来找出:

SELECT compatibility_level FROM sys.databases
Run Code Online (Sandbox Code Playgroud)

SQL Server 2017是140

如果更低,就不会识别 TRIM

更改与SQL Server 2017的兼容性

ALTER DATABASE database_name   
SET COMPATIBILITY_LEVEL = 140
Run Code Online (Sandbox Code Playgroud)

有关每个SQL Server版本支持的兼容性级别的列表,请查看 ALTER DATABASE(Transact-SQL)兼容性级别。

根据下面的评论,您安装的SQL Server版本是SQL2016。您需要安装SQL Sever 2017才能获得 TRIM