国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > SQL Server > 正文

SQL Server 2005 ntext字段的REPLACE處理

2024-08-31 00:52:33
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
SQL Server2005開(kāi)發(fā)應(yīng)用實(shí)例──ntext字段的REPLACE處理示例:

--測(cè)試數(shù)據(jù)CREATE TABLE tb(col ntext)INSERT tb VALUES(REPLICATE( '0001,0002,0003,0004,0005,0006,0007,0008,0009,0100,' +'220000001,302000004,500200006,700002008,900002120,',800))DECLARE @p binary(16)SELECT @p=TEXTPTR(col) FROM tbUPDATETEXT tb.col @p NULL 0 tb.col @pGO--替換處理定義DECLARE @s_str nvarchar(1000),@r_str nvarchar(1000)SELECT @s_str='00'  --要替換的字符串 ,@r_str='0000'  --替換成該字符串DECLARE @p varbinary(16)DECLARE @start int,@s nvarchar(4000),@len intDECLARE @s_len int,@step int,@last_repl int,@pos int--替換處理參數(shù)設(shè)置SELECT --用于要判斷每次截取數(shù)據(jù),最后一個(gè)被替換數(shù)據(jù)位置的處理@s_len=LEN(@s_str),--設(shè)置每次應(yīng)該截取的數(shù)據(jù)的長(zhǎng)度,防止REPLACE后數(shù)據(jù)溢出@step=CASE WHEN LEN(@r_str)>LEN(@s_str)THEN 4000/LEN(@r_str)*LEN(@s_str)ELSE 4000 END--替換處理的開(kāi)始位置SELECT @start=PATINDEX('%'+@s_str+'%',col),@p=TEXTPTR(col),@s=SUBSTRING(col,@start,@step),@len=LEN(@s),@last_repl=0FROM tbWHERE PATINDEX('%'+@s_str+'%',col)>0AND TEXTVALID('tb.col',TEXTPTR(col))=1WHILE @len>=@s_lenBEGIN--得到最后一個(gè)被替換數(shù)據(jù)的位置WHILE CHARINDEX(@s_str,@s,@last_repl)>0SET @last_repl=@s_len+CHARINDEX(@s_str,@s,@last_repl)--如果需要,更新數(shù)據(jù),同時(shí)判斷下一個(gè)取數(shù)位置的偏移量IF @last_repl=0SET @last_repl=@s_lenELSEBEGINSELECT @last_repl=CASEWHEN @len<@last_repl THEN 1WHEN @len-@last_repl>=@s_len THEN @s_len ELSE @len-@last_repl+2 END,@s=REPLACE(@s,@s_str,@r_str),@pos=@start-1UPDATETEXT TB.col @p @pos @len @sEND--獲取下一個(gè)要處理的數(shù)據(jù)SELECT @start=@start+LEN(@s)-@last_repl+1,@s=SUBSTRING(col,@start,@step),@len=LEN(@s),@last_repl=0FROM tbENDGO--顯示處理結(jié)果SELECT datalength(col),* FROM tbDROP TABLE tb

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 沙洋县| 海口市| 湘潭县| 万宁市| 林西县| 灌阳县| 犍为县| 浦江县| 济源市| 玛曲县| 兴安盟| 古浪县| 格尔木市| 永和县| 大石桥市| 邯郸县| 专栏| 英德市| 曲沃县| 漯河市| 三都| 九龙县| 铁岭市| 曲松县| 大连市| 德格县| 阳信县| 永福县| 高青县| 德阳市| 洛隆县| 海原县| 剑河县| 隆子县| 烟台市| 万源市| 曲周县| 千阳县| 涪陵区| 略阳县| 雷山县|