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 ...