NEWS

[DATABASE] Hướng dẫn sort sắp xếp địa chỉ IP trên sqlserver sử dụng hàm PARSENAME

[DATABASE] Hướng dẫn sort sắp xếp địa chỉ IP trên sqlserver sử dụng hàm PARSENAME
Đăng bởi: Thảo Meo - Lượt xem: 2400 19:10:15, 01/06/2022C#   In bài viết

Xin chào các bạn, bài viết hôm nay mình sẻ tiếp tục hướng dẫn các bạn cách sắp xếp sort địa chỉ IP trên SQL Server, sử dụng hàm PARSENAME.

[DATABASE] How to sort Ipaddress in sqlserver

Hàm PARSENAME là hàm dùng để tách số ra từ chuỗi được ngăn cách bởi dấu chấm như: Địa chỉ IP, database name...

1 = Object name
2 = Schema name
3 = Database name
4 = Server name

Ví dụ: Mình có một danh sách địa chỉ IP Address như bên dưới

IPAddress       
--------------- 
10.0.0.1
192.120.40.243
207.46.199.60
255.255.0.0
255.255.255.255
64.233.188.15
65.54.152.142
65.97.176.172
68.142.197.0
98.123.251.21

Và mình muốn sắp xếp IP được như kết quả bên dưới.

IPAddress       
--------------- 
10.0.0.1
64.233.188.15
65.54.152.142
65.97.176.172
68.142.197.0
98.123.251.21
192.120.40.243
207.46.199.60
255.255.0.0
255.255.255.255

Để sắp xếp được mình sẽ dùng Hàm Parsename để tách số ra từng dấu chấm để sort nó.

1. Tạo dữ liệu mẫu để test

CREATE TABLE [WorkStation] ( [IPAddress]  VARCHAR(15) )

INSERT INTO [WorkStation] ( [IPAddress] ) VALUES ('255.255.0.0')
INSERT INTO [WorkStation] ( [IPAddress] ) VALUES ('98.123.251.21')
INSERT INTO [WorkStation] ( [IPAddress] ) VALUES ('192.120.40.243')
INSERT INTO [WorkStation] ( [IPAddress] ) VALUES ('207.46.199.60')
INSERT INTO [WorkStation] ( [IPAddress] ) VALUES ('10.0.0.1')
INSERT INTO [WorkStation] ( [IPAddress] ) VALUES ('68.142.197.0')
INSERT INTO [WorkStation] ( [IPAddress] ) VALUES ('255.255.255.255')
INSERT INTO [WorkStation] ( [IPAddress] ) VALUES ('65.54.152.142')
INSERT INTO [WorkStation] ( [IPAddress] ) VALUES ('64.233.188.15')
INSERT INTO [WorkStation] ( [IPAddress] ) VALUES ('65.97.176.172')

2. Lệnh SQL sắp xếp

SELECT [IPAddress] FROM [WorkStation]
ORDER BY CAST(PARSENAME([IPAddress], 4) AS INT),
         CAST(PARSENAME([IPAddress], 3) AS INT),
         CAST(PARSENAME([IPAddress], 2) AS INT),
         CAST(PARSENAME([IPAddress], 1) AS INT)

Thanks for watching!

THÔNG TIN TÁC GIẢ

BÀI VIẾT LIÊN QUAN

[DATABASE] Hướng dẫn sort sắp xếp địa chỉ IP trên sqlserver sử dụng hàm PARSENAME
Đăng bởi: Thảo Meo - Lượt xem: 2400 19:10:15, 01/06/2022C#   In bài viết

CÁC BÀI CÙNG CHỦ ĐỀ

Đọc tiếp
.