对于以下代码:
DECLARE @ss varchar(60)
SET @ss = 'admin'
select TRIM(@ss)
我有一个错误:
'TRIM'不是公认的内置函数名称
答案 0 :(得分:8)
TRIM
在SQL Server中引入(从2017年开始)。
在旧版的SQL Server中,要执行修剪,您必须像下面这样使用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
答案 1 :(得分:4)
也许已将其设置为较早的兼容性级别。
使用它来查找:
SELECT 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.
答案 2 :(得分:1)
您可以将此代码用于旧版本:
SELECT RTRIM (LTRIM (' JKL ')) AS Trimmed
哪个产生'JKL'