1. 程式人生 > >SQL 擷取字串,中文算兩個字元的方法

SQL 擷取字串,中文算兩個字元的方法

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

'中國abcdefgh'UNIONALLSELECT N'123 fsd——————'UNIONALLSELECT N'中國人民'UNIONALLSELECT N'是中國人,都是炎黃子孫,都是龍人傳人'go----------------------------建立函式-----------------------IFOBJECT_ID('f_cut') ISNOTNULLDROPFUNCTION f_cut
GOCREATEFUNCTION f_cut
(
@sNVARCHAR(50),--你要擷取的字串@iINT--擷取的長度)
RETURNSNVARCHAR(50)
ASBEGINDECLARE@jINT
DECLARE@aNVARCHAR(100)
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 行受影響)


*/