【发布时间】:2021-01-17 10:01:52
【问题描述】:
我在下面的列中有值(空格分隔的字符串)
1 4 7 5
4 5
1 4
1 3 4
我只需要1是3次,3是1次,4是4次,5是2次,7是1次。
如下:
Value| count
-----+-------
1 | 3
3 | 1
4 | 4
5 | 2
7 | 1
我试过这样:
SELECT value
FROM [dbo].tbl
CROSS APPLY STRING_SPLIT((SELECT DisCode FROM tbl), ' ');
但我得到一个错误
无效的对象名称“STRING_SPLIT”
我尝试过: String_split function is not splitting delimiters in SQL Server 2019 但没有得到任何解决方案。
有人问最低兼容级别,但是我无法按服务器级别降级,因为它是一个正在运行的在线服务器。('STRING_SPLIT' is not a recognized built-in function name)
请给我一个可能的解决方案。
【问题讨论】:
-
STING_SPLIT在SQL Server 2019中可用。您的兼容性级别必须设置为更早的版本。STRING_SPLIT应可从SQL Server 2016/ 兼容级别130获得 -
你运行的是什么版本
select @@version? @SquirrelSTING_SPLIT肯定不可用,STRING_SPLIT从 2016 年开始可用 -
我的版本是:Microsoft SQL Server 2019 (RTM-GDR)。我无法降级兼容级别。
-
@Charlieface 哈哈。错别字
-
我们不是要求您降级
compatibility level,而是如果您想使用STRING_SPLIT(),请将其更改为最低130
标签: sql sql-server sql-server-2019