SQL基礎(三) SQL根據」,「分割字串

2022-04-29 13:06:10 字數 1065 閱讀 8361

declare @sysno nvarchar(500);

set @sysno='4,11064,100';

declare @table_reviewid table

([sysno] int not null

)while(charindex(',',@sysno)<>0)

begin

insert into @table_reviewid(sysno) values(convert(int,substring(@sysno,1,charindex(',',@sysno)-1)));

set @sysno=stuff(@sysno,1,charindex(',',@sysno),'');

endinsert into @table_reviewid (sysno) values(convert(int,@sysno));

select * from @table_reviewid

備註:stuff用法:刪除指定長度的字元,並在指定的起點處插入另一組字元

語法stuff ( character_expression , start , length ,character_expression )

character_expression :操作的字串

start :起始位置

length :長度

,character_expression :刪除的起始位置插入第二個字串,從而建立並返回乙個字串

例如:select stuff('abcdef', 2, 3, 'ijklmn') 輸出:aijklmnef

charindex用法: 通過charindex如果能夠找到對應的字串,則返回該字串位置,否則返回0。

charindex ( expressiontofind , expressiontosearch [ , start_location ] )

expressiontofind :目標字串,就是想要找到的字串,最大長度為8000 。

expressiontosearch :用於被查詢的字串。

start_location:開始查詢的位置,為空時預設從第一位開始查詢。

sql 分割字元

sql對字串的處理能力比較弱,比如我要迴圈遍歷象1,2,3,4,5這樣的字串,如果用陣列的話,遍歷很簡單,但是t sql不支援陣列,所以處理下來比較麻煩。下邊的函式,實現了象陣列一樣去處理字串。一,用臨時表作為陣列 create function f split c varchar 2000 spl...

SQL分割字串

t sql對字串的處理能力比較弱,比如我要迴圈遍歷象1,2,3,4,5這樣的字串,如果用陣列的話,遍歷很簡單,但是t sql不支援陣列,所以處理下來比較麻煩。下邊的函式,實現了象陣列一樣去處理字串。一,用臨時表作為陣列 create function f split c varchar 2000 s...

SQL分割字串

if object id dbo.fn split isnot null drop function dbo.fn split gocreate function dbo.fn split inputstr varchar 8000 seprator varchar 10 returns temp ...