回覆列表
  • 1 # uotkn25480

    “張三,李四,王五,錢六,趙七,Tom,Amy,Joe,Leo”,現在要將此字串按照“,”進行分離得到一組資料,現在可以得出這個函式傳入變數有兩個,一個是目標字串,我們定義為@string,資料型別為nvarchar(500),選擇nvarchar()是為了兼顧所有Unicode字符集,比如中文;另一個變數為分隔符,我們定義為@separator,資料型別為nvarchar(10),輸出變數則定義為@array,一個單列列名為String,資料型別為nvarchar(500)的Table。以字串“張三,李四,王五,錢六,趙七,Tom,Amy,Joe,Leo”為例,首先得找到第一個“,”,然後把“張三”截取出來,然後將目標字串變成“李四,王五,錢六,趙七,Tom,Amy,Joe,Leo”,然後再找第一個“,”,把“李四”截取出來,依次類推,直到找不到“,”,有了這個思路,下面就直接實現,查詢字串在程式語言中一般用indexOf方法,擷取一般用Substring方法,SQL SERVER中有SUBSTRING函式用來擷取字串,但是沒有indexOf查詢函式,取而代之的是CHARINDEX和PATINDEX函式,CHARINDEX用於完全匹配查詢,而PATINDEX用於模糊匹配查詢,根據我們的需求,選用CHARINDEX函式,整個SPLIT函式程式碼如下:測試SELECT * FROM dbo.SPLIT(N"張三,李四,王五,錢六,趙七,Tom,Amy,Joe,Leo",",")

  • 中秋節和大豐收的關聯?
  • 結婚公婆出酒席錢收的份子錢應該給誰?