Gon*_*ers 24 azure-sql-database
我的Azure SQL数据库中没有新STRING_SPLIT 方法.我ALTER DATABASE [DatabaseName] SET COMPATIBILITY_LEVEL = 130几天前已经跑了,我已经验证兼容级别确实设置为130.SELECT database_id, name, compatibility_level FROM sys.databases
有没有其他人能够使用新方法,如果是这样,你还需要做任何其他工作吗?
Gon*_*ers 49
这是一个语法错误.我试图将该函数用作标量而不是表值.
正确的语法: SELECT Value FROM STRING_SPLIT('Lorem ipsum dolor sit amet.', ' ');
Nil*_*rma 14
STRING_SPLIT功能在兼容级别130或更高级别可用.如果您的数据库兼容级别低于130,SQL Server将无法找到并执行STRING_SPLIT函数.您可以使用以下命令更改数据库的兼容级别:
ALTER DATABASE DatabaseName SET COMPATIBILITY_LEVEL = 130
Run Code Online (Sandbox Code Playgroud)
请注意,即使在新的Azure SQL数据库中,兼容级别120也可能是默认的.
以供参考:
版本 - 最高兼容级别 - 最低可用级别
函数string_split必须放在FROM子句之后。作为表值(如OP的答案)或使用以下内容来分割列中的每个字符串","(归功于@padigan的评论):
select *
from infoTable
cross apply string_split(infoTable.myStrings, ',')
Run Code Online (Sandbox Code Playgroud)
我不确定如何命名结果列,它采用默认名称value