SQLServer中字串函數

來源:互聯網
上載者:User
/************************************************/                    --字串函數/************************************************/PRINT CHAR(ASCII('A')) --返回hello中第一次出現L的位置--(這裡有個奇怪的現象,只有在AdventureWorks資料庫中,前面的L字元需要區分大小寫,應該是該資料庫設定了什麼地方吧)PRINT CHARINDEX('L','helLo WORLD')-- [AdventureWorks:4, 其他資料庫:3]--貌似這個函數和CHARINDEX區別不大,其實這個更強大PRINT PATINDEX('%L%','hello world') -- [AdventureWorks:4, 其他資料庫:3]--模式wl在運算式中找不到(0), [wl]表示在w,l中任意一個,在hello world中在位置(3)找到l--[^wl]:表示不在wl的任何字元,在(1)處找到hSELECT PATINDEX('%wl%','hello world'),PATINDEX('%[wl]%','hello world'),PATINDEX('%[^wl]%','hello world') --[0,3,1]--DIFFERENCE 該函數實則比較兩個字串的SOUNDEX()值相似性[3]SELECT SOUNDEX('hell'), SOUNDEX('hello'), DIFFERENCE('el','hello')PRINT LEFT('hello world',4) -- 取左邊個字元[hell]PRINT RIGHT('hello world',6) --取右邊個字元, 可以用Len()檢驗[ world]PRINT LEN(RIGHT('hello world',5)) --運算式裡面的字元長度[5]SELECT LEN(RTRIM(LTRIM('  HELLO world   '))), LEN('  HELLO world   '), LEN('  HELLO world')--切忌LEN函數只計算左邊和字元中間的空格,不計算右邊的空格[11,13,13]PRINT LOWER('HELLO woRLd') --轉為小寫[hello word]PRINT UPPER('HELLO world') --轉為大寫[HELLO WORD]SELECT LEN('   HELLO world'),  LEN(LTRIM('   HELLO world')) --去掉左邊空格[14,11]SELECT LEN('HELLO world  '),LEN(RTRIM('HELLO world   ')),RTRIM(' HELLO world  ') --去掉右邊空格[11,11,  HELLO world]SELECT LEN(RTRIM(LTRIM('  HELLO world   '))),RTRIM(LTRIM('  HELLO world   '))-- 去掉左右空格[11,HELLO world]PRINT REVERSE('HELLO world  ') --反轉運算式[  dlrow OLLEH]PRINT 'hello'+SPACE(4)+'world' --擷取空格, [hello    world]/*    char a =  STR ( float_expression [ , length [ , decimal ] ] );    length:總長度。它包括小數點、符號、數字以及空格。預設值為10。    decimal:小數點後的位元。decimal 必須小於或等於16。如果decimal  大於16,則會截斷結果,使其保持為小數點後具有十六位。    返回:char類型    注意: length應該不小於float_expression運算式整數部分的位元,否則將顯示length 個* ;  length >= LEN(FLOOR(float_expression))    為了不讓左邊空格補充: length = LEN(FLOOR(float_expression))+1(小數點)+小數位元*/PRINT  STR(1223445.3,2) --因為小於整數部分個數(7)位 [**]PRINT  STR(1223445.3,5) --因為小於整數部分個數(7)位 [*****]DECLARE @num FLOAT SET @num= 323.14159  --如果不足length,則左邊已空格補充SELECT LEN(STR(@num,10,2)),STR(@num,10,2) [10,    323.14]--LEN(FLOOR(@num))+1+2 : 這裡表示整數位元+小數點+小數個數SELECT  STR(@num,LEN(FLOOR(@num))+3,2) ,CAST(STR(@num,10,2) AS FLOAT)--從運算式的位置(空格),取個字元( w),然後用DELETE替換剛才找到的兩個字元PRINT STUFF('hello world',6,2,'DELETE') --[helloDELETEorld]/*    SUBSTRING ( value_expression ,start_expression , length_expression )    0<=start_expression<=LEN(value_expression)    0<=length_expression<=LEN(value_expression)    從value_expression位置start_expression取length_expression個字元*/PRINT SUBSTRING('hello world',2,6) --[ello w]

以上函數也是自己學習的筆記,當然你要合適的用到項目中去,就要看你自己的需求了!

Technorati 標籤: sqlserver,字串函數
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.