2014年2月21日 星期五

[SQL] 字串練習

字串練習 :

使用到的函數

  1. SUBSTRING(變數, 起始(1), 長度)
  2. LEFT(變數, 從左取幾個長度)
  3. ESCAPE CHAR
  4. REGULAR EXPRESS
  5. LEN(計算長度)
  6. REPLACE(變數, 舊字串, 新字串)



  1. --字串練習
  2. SELECT '***' + SUBSTRING(VAL, 1, 4) "1取四"
  3.         ,'***' + SUBSTRING(VAL, 5, 8000) "5之後"
  4.         ,LEFT(VAL, 3) "左取3"
  5.         ,CHARINDEX('N', A.VAL) AS "查詢N位置"
  6. FROM
  7.         (
  8.                 SELECT 'abandon' AS VAL
  9.         ) A
  10.  
       
  11. --考慮ESCAPE CHAR    
  12. SELECT *
  13. FROM
  14.         (
  15.         SELECT '5% DISCOUNT' AS VAL
  16.         )A
  17. WHERE VAL LIKE '5[%]%'
  18. --正規表達式 REGULAR EXPRESS
  19. SELECT VAL
  20. FROM
  21.         (
  22.                 SELECT '123' VAL
  23.                 UNION ALL
  24.                 SELECT '456'
  25.                 UNION ALL
  26.                 SELECT 'ABC'
  27.                 UNION ALL
  28.                 SELECT 'xyz'
  29.                 UNION ALL
  30.                 SELECT '@789'
  31.                 UNION ALL
  32.                 SELECT '789@'
  33.         ) A
  34. WHERE 1=1
  35. --AND VAL LIKE '[0-9]%'         --測試1.數字開頭
  36. --AND VAL LIKE '[^0-9]%'    --測試2.非數字開頭
  37. AND VAL LIKE '[A-Z]%'           --測試3.英文開頭
  38. --左邊補0 或著 靠左對齊
  39. SELECT VAL "對照組"
  40.            ,RIGHT( REPLICATE('0',5) + CONVERT(VARCHAR, A.VAL),5) "前面補0"
  41.            ,LEFT(VAL + SPACE(5), 5) "向左對齊"
  42. FROM
  43.         (
  44.                 SELECT '1' VAL
  45.                 UNION ALL
  46.                 SELECT '12'
  47.                 UNION ALL
  48.                 SELECT '123'
  49.         )A
  50.        
  51.        
  52. --計算某字串出現的次數
  53. SELECT (LEN(VAL) - LEN(REPLACE(VAL, 'OX', ''))) / LEN('OX') "OX出現次數"
  54. FROM
  55.         (
  56.                 SELECT 'OXXOXOOOXXX' AS "VAL"
  57.         )A

沒有留言:

張貼留言