trim和string_split在SQL Server中不起作用?

mcdcgff0  于 2023-01-08  发布在  SQL Server
关注(0)|答案(3)|浏览(309)

我这样问是因为我需要知道为什么有些函数(split_string、trim)在SQL Server(使用SSMS)中不起作用。
如果我运行这样的程序:

SELECT TRIM('   SQL Tutorial! ') AS TrimmedString;

上面写着
消息195,级别15,状态10,第60行
"TRIM"不是可识别的内置函数名。
所以,我可以使用rtrimltrim,但我还需要string_split来执行另一个任务。
那么问题是我有什么版本?在帮助/关于中,它说v17. 9. 1。但是根据这个页面,它很清楚地说它是受支持的。
https://learn.microsoft.com/en-us/sql/t-sql/functions/string-split-transact-sql?view=sql-server-2017
那它为什么不起作用呢?

ht4b089n

ht4b089n1#

TRIM是在SQL Server 2017中引入的。SQL Server 2016中的STRING_SPLIT。您是否连接到较早版本的SQL Server上的数据库?

uurity8g

uurity8g2#

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;
rjee0c15

rjee0c153#

从字符串分割('a)选择修剪(值|b.人口基金|(c)秘书长的报告|d ","| ')

相关问题