SQL 擷取字串,中文算兩個字元的方法
阿新 • • 發佈:2019-01-27
--SQL 擷取字串方法,中文算兩個字元的方法。
--方法跟水哥學習的,支援一下水哥的部落格
--http://hi.csdn.net/link.php?url=http://blog.csdn.net%2Fwufeng4552
--水哥最近謝了好多部落格,有時間一定去好好學習--LEFT() 和SUBSTRING()都是將漢字算一個字元來算的--如果不計較的話,推薦使用這兩個系統函式IFOBJECT_ID('TB')ISNOTNULLDROPTABLE TB
GOCREATETABLE tb (ID INTIDENTITY(1,1),VALUE NVARCHAR(100))
INSERT tb SELECT N
GOCREATEFUNCTION f_cut
(
@sNVARCHAR(50),--你要擷取的字串@iINT--擷取的長度)
RETURNSNVARCHAR(50)
ASBEGINDECLARE@jINT
SET@j=1WHILE@j<=@iBEGINIFUNICODE(SUBSTRING(@s,@j,1)) BETWEEN19968AND40868BEGINSET@i=@i-1ENDSET@j=@j+1ENDRETURNLEFT(@s,@i)
ENDGO------------------查詢開始---------------SELECT id,dbo.f_cut([VALUE],10)FROM tb
-------------------結果------------------
/*
(4 行受影響)
id
----------- ----------------------------
1 中國abcdef
2 123 fsd———
3 中國人民
4 是中國人,
(4 行受影響)