首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

T-SQL 字串分段截取:依指定分隔符取得第 N 個區段

     編輯:關於SqlServer

需求

給定字串 'a,b,ct,d,e,f,g' 與分隔符 ',',取得第 3 個區段 'ct'。

實作代碼

-- 字串分段截取
DECLARE @s varchar(50), @split varchar(2), @pos int, @splitlen int;
SELECT @s = 'a,b,ct,d,e,f,g', @split = ',', @pos = 3, @splitlen = LEN(@split + 'a') - 2;

WHILE @pos > 1 AND CHARINDEX(@split, @s + @split) > 0
    SELECT @pos = @pos - 1,
           @s = STUFF(@s, 1, CHARINDEX(@split, @s + @split) + @splitlen, '');

SELECT LEFT(@s, CHARINDEX(@split, @s + @split) - 1);
-- 結果:ct

邏輯解析

  1. @splitlen 計算分隔符實際長度(此處為 1)
  2. 迴圈每次移除第一個區段含分隔符,直到剩下目標區段
  3. 最後用 LEFT + CHARINDEX 截取第一個分隔符前的內容

適用版本

SQL Server 2000 及以上版本皆可執行。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved