Hàm vị trí

Các hàm thao tác dữ liệu trong SQL Server

Ana Voicu

Data Engineer

Hàm vị trí

  • LEN()
  • CHARINDEX()
  • PATINDEX()
Các hàm thao tác dữ liệu trong SQL Server

LEN()

Định nghĩa

  • Trả về số ký tự của chuỗi đã cho.

Cú pháp

LEN(character_expression)

Các hàm thao tác dữ liệu trong SQL Server

Ví dụ LEN() - tham số hằng

SELECT LEN('Do you know the length of this sentence?') AS length
|độ dài|
|------|
|40    |
Các hàm thao tác dữ liệu trong SQL Server

Ví dụ LEN() - tham số cột bảng

SELECT DISTINCT TOP 5 
    bean_origin, 
    LEN(bean_origin) AS length
FROM ratings;
|bean_origin             |độ dài|
|------------------------|------|
|Toscano Black           |13    |
|Trinite                 |7     |
|Ocumare- Puerto Cabello |23    |
|Maracaibo- El Rosario   |21    |
|Madagascar              |10    |
Các hàm thao tác dữ liệu trong SQL Server

CHARINDEX()

Định nghĩa

  • Tìm biểu thức ký tự trong một chuỗi.
  • Trả về vị trí bắt đầu.

Cú pháp

CHARINDEX (expression_to_find, expression_to_search [, start_location])

Các hàm thao tác dữ liệu trong SQL Server

Ví dụ CHARINDEX()

SELECT 
 CHARINDEX('chocolate', 'White chocolate is not real chocolate'),
 CHARINDEX('chocolate', 'White chocolate is not real chocolate',10),
 CHARINDEX('chocolates', 'White chocolate is not real chocolate');
|vị trí đầu|vị trí trong chuỗi|vị trí của biểu thức không tồn tại|
|----------|-------------------|----------------------------------|
|7         |29                 |0                                 |
Các hàm thao tác dữ liệu trong SQL Server

PATINDEX()

Định nghĩa

  • Tương tự CHARINDEX()

  • Trả về vị trí bắt đầu của mẫu trong một biểu thức

Cú pháp

PATINDEX ('%pattern%', expression, [location ])

Các hàm thao tác dữ liệu trong SQL Server

Ký tự đại diện

Ký tự đại diện Giải thích
% Khớp với chuỗi bất kỳ độ dài (kể cả rỗng)
_ Khớp một ký tự đơn
[ ] Khớp ký tự bất kỳ trong ngoặc [ ] (ví dụ, [abc] khớp a, b hoặc c)
Các hàm thao tác dữ liệu trong SQL Server

Ví dụ PATINDEX()

SELECT 
  PATINDEX('%chocolate%', 'White chocolate is not real chocolate') AS position1,
  PATINDEX('%ch_c%', 'White chocolate is not real chocolate') AS position2;

|position1|position2|
|---------|---------|
|7        |7        |
Các hàm thao tác dữ liệu trong SQL Server

Ayo berlatih!

Các hàm thao tác dữ liệu trong SQL Server

Preparing Video For Download...