sql - 如何在 SQL Server 2019 中使用拆分字符串获取值
问题描述
我在下面的列中有值(空格分隔的字符串)
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 函数在 SQL Server 2019 中没有拆分分隔符, 但没有得到任何解决方案。
有人问最低兼容级别,但我不可能按服务器级别降级,因为它是一个正在运行的在线服务器。('STRING_SPLIT'不是公认的内置函数名称)
请给我一个可能的解决方案。
解决方案
STRING_SPLIT()
从 SQL Server 2016 开始可用,这意味着它需要兼容级别 130 或更高(请参阅文档)。
在 SQL Server 2019 上运行的数据库可以运行各种兼容级别,甚至低于 130。您可以使用以下命令检查数据库的兼容性级别:
SELECT compatibility_level
FROM sys.databases
WHERE name = db_name();
如果小于 130,那么您将无法访问该功能,除非您更改兼容性或创建具有更高兼容性级别的新数据库。
推荐阅读
- mysql - 如何使用带有 EOF 的 BASH 修复 MySQL 8 中引号内的双/单引号?
- matlab - 在矢量化函数中调用模式搜索
- eclipse - Eclipse RCP 新插件依赖未解决需求
- c# - 如何告诉正则表达式对“或”表达式贪婪
- sml - 什么是嵌套模式?
- parameters - 如何在 Telerik 报告中添加 Yes/No 参数以进行条件格式设置以使详细信息部分可见 True 或 False?
- http - 浏览器如何理解要下载的文件类型
- python-3.x - pygame显示空白屏幕
- javascript - chrome webRequest onBeforeRequest 事件监听器在页面上打开弹出窗口之前不会触发
- c++ - 将字符串数组传递给采用 const char** 的函数