SQL 字元擷取

2022-07-18 07:54:14 字數 1649 閱讀 5444

如題所示 在寫儲存過程當中常用到字元的擷取與同事總結了一下帖上來

code

declare

@text

nvarchar(20

),@sign

nvarchar(20

),@content

nvarchar(20

),@startindex

int,

@findindex

int,

@result

nvarchar(30

) --

初始化一些變數

set@text='

14,20,3,4

'set

@sign='

,'set@startindex=1

--t-sql中字串的查詢位置是從開始的

set@findindex=0

set@result=''

--開始迴圈查詢字串逗號

while

(@startindex

<=

len(

@text

))begin

--查詢字串函式charindex  第乙個引數是要找的字串

--第二個引數是在**查詢這個字串

--第三個引數是開始查詢的位置

--返回值是找到字串的位置

select

@findindex

=charindex

(@sign

,@text

,@startindex)--

print @findindex

--判斷有沒找到沒找到返回if(

@findindex=0

or@findindex

isnull

)begin

--如果沒有找到者表示找完了

set@findindex

=len

(@text)+

1end

--擷取字串函式substring  第乙個引數是要擷取的字串

--第二個引數是開始的位置

--第三個引數是擷取的長度

--@findindex-@startindex 表示找的的位置-開始找的位置=要擷取的長度

--ltrim 和rtrim 是去除字串左邊和右邊的空格函式

set@content

=ltrim

(rtrim

(substring

(@text

,@startindex

,@findindex

-@startindex

)))if

(@startindex

=len

(@text

))begin

set@result

=@result

+@content

endelse

begin

set@result

=@result

+@content+'

,'end--

print @content

--初始化下次查詢的位置

set@startindex

=@findindex+1

print

@result

endselect

@result

sql語句拼接,字元擷取,sql排序

1 下面的語句會把,從t in 1表查詢的vinleft欄位進行去重,同理t vin 3 做同樣的處理,並且把兩個查詢的結果連在一起 select distinct vinleft from t vin 0 union select distinct vinleft from t vin 1 uni...

sql 擷取字串

sql 擷取字串 a.擷取從字串左邊開始n個字元 declare s1 varchar 100 select s1 select left s1,4 顯示結果 http b.擷取從字串右邊開始n個字元 例如取字元www.163.com declare s1 varchar 100 select s1...

SQL擷取字串

substring 返回字元 binary text 或 image 抒發式的一全體。無關可與當函式一伏運用的無效 microsoft sql server 資料種型的更多疑息,請參睹資料種型。語法 substring expression start length 引數 expression 是字...