Đánh giá chủ đề:
  • 0 Votes - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Tổng hợp các hàm xử lý chuỗi trong MS SQL Server
#1
Danh sách các hàm xử lý này mọi người có thể tìm trên MSDN hoặc trong phần System Functions trong mỗi database SQL.

1. Hàm Ascii
Mã:
-- 1. Ascii  
    -- trả về mã ascii của ký tự  
    select ascii('A')  
    -- kết quả: 65


2. Hàm Char

Mã:
-- 2. Char  
    -- trả về ký tự của mã ASCII  
    select char(65)  
    -- kết quả: A


3. Hàm charindex
Mã:
-- 3. charindex  
    -- trả về vị trí xuất hiện của 1 chuỗi con trong 1 chuỗi bắt đầu từ 1 vị trí xác định  
    select charindex('abc','cabcaaaa',2)  
    -- giải thích: từ vị trí số 2 của chuỗi 'cabcaaaa' tức là từ ký tự 'a' trở đi tìm vị trí xuất hiện của chuỗi 'abc'  
    -- kết quả là chuỗi 'abc' xuất hiện ở vị trí ký tự thứ 2 của chuỗi 'cabcaaaa'


4. Hàm Left
Mã:
-- 4. left  
    -- lấy ra n ký tự đầu tiên của chuỗi.  
    select left('123456',3)  
    -- ví dụ: lấy ra 3 ký tự đầu tiên của chuỗi '123456'  
    -- kết quả: '123'


5. Hàm Right

Mã:
-- 5. right  
    -- lấy ra n ký tự cuối cùng của chuỗi  
    -- ví dụ: lấy ra 3 ký tự cuối cùng của chuỗi '123456'  
    select right('123456',3)  
    -- kết quả: '456'

6. Hàm Len

Mã:
-- 6. len()  
    -- trả về số lượng ký tự hay độ dài của chuỗi  
    select len('abcd')  
    -- kết quả: 4

7. Hàm Lower

Mã:
-- 7. lower  
    -- viết thường tất cả các ký tự  
    select lower('aaBBcCdGG')  
    -- kết quả: aabbccdgg

8. Hàm Upper

Mã:
-- 8. upper  
    -- viết hoa tất cả các ký tự  
    select upper('aaBBcCdGG')  
    -- kết quả: AABBCCDGG


9. Hàm LTrim

Mã:
-- 9. Ltrim  
    -- Xóa tất cả các ký tự rỗng, khoảng trắng ở ĐẦU chuỗi.  
    select Ltrim('     abc     ')  
    -- kết quả: 'abc     '


10. Hàm RTrim
Mã:
-- 10. Rtrim  
    -- Xóa tất cả các ký tự rỗng, khoảng trắng ở CUỐI chuỗi.  
    select Rtrim('     abc     ')  
    -- kết quả: '     abc'
11. Hàm PatIndex
Mã:
-- 11. patindex  
    -- trả về vị trí xuất hiện của 1 mẫu trong 1 chuỗi  
    SELECT PATINDEX('%ensure%', 'please ensure the door is locked');  
    -- kết quả: 8  
    -- note: sử dụng ký tự _ để thay thế cho 1 ký tự bất kỳ  
    SELECT PATINDEX('%en_ure%', 'please ensure the door is locked');  
    -- kết quả vẫn là: 8

12. Hàm Quote

Mã:
-- 12. quotename  
    -- trích dẫn  
    select quotename('hanh trang lap trinh dot com')  
    -- kết quả: [hanh trang lap trinh dot com]  
    -- có thể đổi ký tự trích dẫn khác như :ngoặc đơn ( hay dấu nháy '  
    select quotename('hanh trang lap trinh dot com',')')  
    -- kết quả: (hanh trang lap trinh dot com)


13. Hàm Replace

Mã:
-- 13. replace  
    -- thay thế tất cả các chuỗi con nào đó trong 1 chuỗi thành 1 chuỗi con khác  
    select replace('hanh trang lap trinh dot com accom','com','net')  
    -- Tất cả các từ 'com' trong chuỗi sẽ được thay bằng từ 'net'  
    -- Kết quả: hanh trang lap trinh dot net acnet

14. Hàm replicate
Mã:
-- 14. replicate  
    -- nhân 1 chuỗi lên nhiều lần  
    select replicate('acb',5)  
    -- chuỗi 'acb' được lặp lại 5 lần.  
    -- kết quả: acbacbacbacbacb

15. Hàm Reverse

Mã:
-- 15. reverse  
    -- quay ngược chuỗi lại  
    select reverse('abcdef')  
    -- kết quả: fedcba

16. Hàm Space
Mã:
-- 16. space  
    -- trả về 1 chuỗi gồm n ký tự khoảng trắng.  
    select 'a' +space(54) +'b'  
    -- kết quả: 'a                                                      b'  
    -- ký tự a + 54 ký tự khoảng trắng + ký tự b

17. Hàm Str
Mã:
-- 17. Str  
    -- chuyển một số thành một chuỗi. Hàm này rắc rối, mình chưa biết ích lợi để làm gì nữa.  
    select str(5.333333,20,2)  
    -- giải thích: chuyển số 5.333333 thành chuỗi có độ dài là 20 ký tự, chỉ lấy 2 ký tự thập phân sau dấu '.'  
    -- nếu số trên khi chuyển thành chuỗi mà chưa đủ 20 ký tự thì sẽ tự thêm các khoảng trắng vào phía trước sao cho đủ 20 ký tự.  
    -- kết quả: '                5.33'  
      
    -- nếu số lượng chữ số phần nguyên của số mà nhiều hơn độ dài chuỗi trả về thì sẽ trả về các giá trị là ký tự '*'  
    select str(5555.333333,3,2)  
    -- kết quả trả về là 3 ký tự '*' : '***' vì độ dài chuỗi trả về là 3 trong khi số lượng chữ số phần nguyên là
4.

18. Hàm Stuff
Mã:
-- 18. stuff  
    -- hàm này sẽ thay thế n ký tự bắt đầu từ 1 vị trí xác định bằng 1 chuỗi muốn thay vào  
    SELECT STUFF('abcdef', 2, 3, 'ijklmn');  
    -- giải thích: từ vị trí 2 tức là ký tự 'b' lấy ra 3 ký tự -> 'bcd' và thay thế bằng 'ijklmn'  
    -- kết quả: aijklmnef


19. Hàm Substring
Mã:
-- 19. substring  
    -- cắt ra 1 chuỗi nhỏ từ chuỗi ban đầu  
    select substring('abcdefgh',2,5)  
    -- giải thích: từ vị trí thứ 2 lấy ra 5 ký tự liên tiếp  
    -- kết quả: bcdef

20. Hàm Unicode
Mã:
-- 20. unicode  
    -- trả về giá trị unicode của ký tự đầu tiên của chuỗi  
    select unicode(N'Áac')  
    -- kết quả: 193

21. Hàm NChar

Mã:
-- 21. Nchar  
    -- trả về ký tự unicode của mã unicode  
    select Nchar( unicode(N'Áac'))  
    select Nchar( 193)  
    -- kết quả cả 2 câu truy vấn đề là : Á


22. Hàm Soundex

Mã:
-- 22. soundex  
   -- Soundex là một thuật toán ngữ âm để liệt kê các từ theo âm sắc, theo cách phát âm của tiếng Anh. Mục đích là mã hóa những từ có cùng cách phát âm qua những đặc trưng giống nhau, từ đó người ta có thể tìm được một từ nào đó dù có sai sót nhỏ trong chính tả từ đó  
    select soundex('Brothers')  
    -- kết quả là 1 chuỗi gồm 4 ký tự: B636. Ký tự đầu tiên của kết quả cũng chính là ký tự đầu tiên của chuỗi ban đầu

23. Hàm Difference

Mã:
-- 23. difference  
    -- hàm trả về số lượng ký tự giống nhau của 2 chuỗi sau khi đã mã hóa soundex. Giá trị kết quả nằm trong khoảng từ 0 đến 4  
    select difference('Brothers','Brothers')
Nguon:hanhtranglaptrinh
Chữ ký của Noname 020
ღღღღღTài sản của Noname (View All Items) ღღღღღ
Reply
Những người đã cảm ơn dannynguyen1980


Có thể liên quan đến chủ đề
Chủ đề: Tác giả Trả lời: Xem: Bài mới nhất
  Tổng hợp các bản cài đặt SQL Server đến 2016 maidinhdan 0 424 16-06-15, 11:25 AM
Bài mới nhất: maidinhdan
Information Hướng Dẫn Giải quyết Lỗi không thể kết nối trong SQL Server maidinhdan 0 372 15-06-15, 10:54 AM
Bài mới nhất: maidinhdan
  Hướng Dẫn Một vài lưu ý cho người quản trị MS SQL server Noname 2 1,106 25-05-15, 03:33 PM
Bài mới nhất: Noname
  [Help] Xin SQL Server Migration Assistant (SSMA) for Access V5.2 maidinhdan 7 1,088 04-03-15, 10:54 AM
Bài mới nhất: maidinhdan
  Hướng Dẫn Video: 1/10: Cài đặt SQL Server 2005 trên WinXP maidinhdan 0 392 24-02-15, 05:27 PM
Bài mới nhất: maidinhdan

Chuyển nhanh:


User(s) browsing this thread: 1 Guest(s)
Diễn Đàn Thơ Văn Thi Ẩm Lâu|Nhà Hàng Sông Thơ