SQL Server 全角半角轉(zhuǎn)換

哪些字符是有全角和半角之分的搔预?

首先霹期,中文是只有全角,沒有半角之分拯田,所以轉(zhuǎn)換的時(shí)候可以忽略掉中文字符历造。

  • 英文字符與標(biāo)點(diǎn)
    對(duì)于英文字符來說,同字符半角的和全角的編碼差值總是65248
select UNICODE('a'),UNICODE('a'),UNICODE('a')-UNICODE('a')

(無列名)|(無列名)|(無列名)|
---|----|----
97| 265345| 65248
ASCII碼中吭产,英文字符與標(biāo)點(diǎn)的編碼范圍為33~126侣监,用SQL 通配符表示為:[!-~],當(dāng)然臣淤,全角字符的編碼是超出ASCII編碼范圍的橄霉,只需在半角的ASCII的編碼基礎(chǔ)加上差值65248就能得到全角的UNICODE編碼。

  • 空格
    空格這個(gè)表特殊邑蒋,全角為12288(0x3000)姓蜂,半角為 32(0x20)需要特殊處理下

了解了半角和全角的關(guān)系之后可以寫個(gè)函數(shù)來相互轉(zhuǎn)換

CREATE FUNCTION f_Convert(
  @str  NVARCHAR(4000), --要轉(zhuǎn)換的字符串 
  @flag BIT         --轉(zhuǎn)換標(biāo)志,0轉(zhuǎn)換成半角,1轉(zhuǎn)換成全角 
)
  RETURNS NVARCHAR(4000)
AS
  BEGIN
    DECLARE
    @pat NVARCHAR(8),
    @step INT, 
    @i INT, 
    @spc INT
    
    IF @flag = 0
      SELECT
        @pat = N'%[!-~]%',    --全角的通配符
        @step = -65248,
        @str = REPLACE(@str, N'  ', N'   ')
    ELSE
      SELECT
        @pat = N'%[!-~]%',      --半角的通配符
        @step = 65248,
        @str = REPLACE(@str, N'   ', N'  ')
    --指定排序規(guī)則
    SET @i = PATINDEX(@pat collate LATIN1_GENERAL_BIN, @str)
    WHILE @i > 0
      SELECT
        @str = REPLACE(@str,
                       SUBSTRING(@str, @i, 1),
                       NCHAR(UNICODE(SUBSTRING(@str, @i, 1)) + @step)),
        @i = PATINDEX(@pat collate LATIN1_GENERAL_BIN, @str)
    RETURN (@str)
  END 
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末医吊,一起剝皮案震驚了整個(gè)濱河市钱慢,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌卿堂,老刑警劉巖束莫,帶你破解...
    沈念sama閱讀 221,695評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異草描,居然都是意外死亡览绿,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門穗慕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來挟裂,“玉大人,你說我怎么就攤上這事揍诽。” “怎么了栗竖?”我有些...
    開封第一講書人閱讀 168,130評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵暑脆,是天一觀的道長。 經(jīng)常有香客問我狐肢,道長添吗,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評(píng)論 1 297
  • 正文 為了忘掉前任份名,我火速辦了婚禮碟联,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘僵腺。我一直安慰自己鲤孵,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,655評(píng)論 6 397
  • 文/花漫 我一把揭開白布辰如。 她就那樣靜靜地躺著普监,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上凯正,一...
    開封第一講書人閱讀 52,268評(píng)論 1 309
  • 那天毙玻,我揣著相機(jī)與錄音,去河邊找鬼廊散。 笑死桑滩,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的允睹。 我是一名探鬼主播运准,決...
    沈念sama閱讀 40,835評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼擂找!你這毒婦竟也來了戳吝?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,740評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤贯涎,失蹤者是張志新(化名)和其女友劉穎听哭,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體塘雳,經(jīng)...
    沈念sama閱讀 46,286評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡陆盘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,375評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了败明。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片隘马。...
    茶點(diǎn)故事閱讀 40,505評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖妻顶,靈堂內(nèi)的尸體忽然破棺而出酸员,到底是詐尸還是另有隱情,我是刑警寧澤讳嘱,帶...
    沈念sama閱讀 36,185評(píng)論 5 350
  • 正文 年R本政府宣布幔嗦,位于F島的核電站,受9級(jí)特大地震影響沥潭,放射性物質(zhì)發(fā)生泄漏邀泉。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,873評(píng)論 3 333
  • 文/蒙蒙 一钝鸽、第九天 我趴在偏房一處隱蔽的房頂上張望汇恤。 院中可真熱鬧,春花似錦拔恰、人聲如沸因谎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蓝角。三九已至阱穗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間使鹅,已是汗流浹背揪阶。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評(píng)論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留患朱,地道東北人鲁僚。 一個(gè)月前我還...
    沈念sama閱讀 48,921評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長得像裁厅,于是被迫代替她去往敵國和親冰沙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,515評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容

  • 可以看我的博客 lmwen.top 或者訂閱我的公眾號(hào) 簡介有稍微接觸python的人就會(huì)知道执虹,python中...
    ayuLiao閱讀 3,124評(píng)論 1 5
  • 總感覺自己沒有周末拓挥,總感覺周末好像比平常更忙一些。 早上依舊七點(diǎn)起床袋励,早讀到八點(diǎn)五十然后趕去做九點(diǎn)開始的實(shí)驗(yàn)侥啤,還好...
    BLESS思閱讀 185評(píng)論 1 1
  • 文/銘悅 連續(xù)幾天陰雨,好不容易到來的晴空萬里茬故。于是盖灸,從接送小孩的家務(wù)中解脫出來,抓拍沿途的風(fēng)景磺芭,感受春天赁炎。 很久...
    銘悅閱讀 374評(píng)論 0 4
  • 兩天的波士頓之旅過的很快 先是頓頓吃了不同風(fēng)味的龍蝦 然后又在非常有美國特色的街道上溜達(dá)購物 感覺身心一下安靜而祥...
    王阿熊閱讀 386評(píng)論 0 1