Sql Server 字符串分割函数string_split


 

  如果数据库是2016之前的版本会出现错误:对象名 'string_split' 无效。
  这时需要把数据库的兼容性级别调整为SQL Server 2016(130),调整完成即可正常使用
  1.打开数据库属性页,选项->兼容性级别,调整为130或者以上。

  

 

   2.代码修改兼容性级别
  ALTER DATABASE [DatabaseName] SET COMPATIBILITY_LEVEL = 130

 

  一、拆分字符串变量
  select * from string_split('1,2,3,4,5',',')

  

 

 

   string_split函数展示的默认名称是value,可根据需要修改别名
  示例2:select value as 'code' from string_split('1,2,3,4,5',',')
  

 

  二、拆分表中的列

  select rst.value from

  ‘表名’ as ewcdd
  CROSS APPLY STRING_SPLIT(ewcdd.要拆分的列名,',')rst(rst是别名)
  where ewcdd.ID='467A1EE6-5AC1-4EAC-B32D-AE700098726A'

 

  三、和in搭配使用

  有些应用中,参数的值是不确定的,是用逗号拼接后,传入sql中,这个时候string_split特别有用,可以和in搭配使用。

  SELECT

    t.id,
    t.name,
    t.description
  FROM test t
  WHERE t.id IN (SELECT CAST(v.value AS INT) AS id FROM STRING_SPLIT('1,2,3', ',') v)

 

  四、拆分+关联
  SELECT

    t.id,
    t.name,
    t.description
  FROM test t
  INNER JOIN STRING_SPLIT('1,2',',') v
  ON t.id = CAST(v.value AS INT)

 

  

  

本文参考:https://www.cnblogs.com/hobelee/p/15615806.html

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM