我问是因为我需要知道为什么某些功能(split_string,trim)在SQL Server(使用SSMS)中不起作用。
如果我运行以下命令:
SELECT TRIM(' SQL Tutorial! ') AS TrimmedString;
它说
第195条消息,第15级,状态10,第60行
'TRIM'不是公认的内置函数名称。
是的,我可以使用rtrim
或ltrim
,但我也需要string_split
来完成其他任务。
那么,问题是我有什么版本?在“帮助/关于”中,它显示为v17.9.1。但是根据此页面,它很明显表明它受支持。
https://docs.microsoft.com/en-us/sql/t-sql/functions/string-split-transact-sql?view=sql-server-2017
那么,为什么不起作用呢?
答案 0 :(得分:1)
TRIM是SQL Server 2017中引入的。STRING_SPLIT是SQL Server 2016中的。您是否已连接到SQL Server早期版本上的数据库?
答案 1 :(得分:0)
CREATE FUNCTION dbo.ERP_FN_TRIM
(@Stringa VARCHAR(MAX)
)
RETURNS VARCHAR(MAX)
AS
BEGIN
DECLARE @StringaPulita VARCHAR(MAX),
@FlagSpazio BIT;
SET @StringaPulita='';
SET @Stringa=LTRIM(RTRIM(@Stringa));
SET @FlagSpazio=0;
WHILE @Stringa <> ''
BEGIN
IF @FlagSpazio = 0
SET @StringaPulita=@StringaPulita + LEFT(@Stringa, 1);
IF SUBSTRING(@Stringa, 2, 2) = ' '
BEGIN
SET @FlagSpazio=1;
END;
ELSE
BEGIN
SET @FlagSpazio=0;
END;
SET @Stringa=SUBSTRING(@Stringa, 2, LEN(@Stringa));
END;
RETURN ISNULL(@StringaPulita, '');
END;