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