Sorting IP Address
Ada pertanyaan tentang Query SQL di salah satu milis, pertanyaan nya seperti ini
Bagaimana cara mengurutkan IP Address, seperti berikut
192.168.11.10
192.168.3.19
192.9.1.55
22.1.164.22
22.212.8.39
22.76.32.47
3.77.202.225
3.77.202.6
3.8.137.98
Aku memberikan solusi sebagai berikut :
Pertama Create Table
CREATE TABLE IPAddress (IP VARCHAR(15) NOT NULL PRIMARY KEY)
Isi dengan dummy data
INSERT INTO IPADDRESS (IP) VALUES('192.168.11.10')
INSERT INTO IPADDRESS (IP) VALUES('3.77.202.225')
INSERT INTO IPADDRESS (IP) VALUES('22.1.164.22')
INSERT INTO IPADDRESS (IP) VALUES('3.8.137.98')
INSERT INTO IPADDRESS (IP) VALUES('192.9.1.55')
INSERT INTO IPADDRESS (IP) VALUES('3.77.202.6')
INSERT INTO IPADDRESS (IP) VALUES('22.76.32.47')
INSERT INTO IPADDRESS (IP) VALUES('192.168.3.19')
INSERT INTO IPADDRESS (IP) VALUES('22.212.8.39')
Jalankan Perintah berikut :
SELECT IP
FROM IPADDRESS
ORDER BY RIGHT('000' + SUBSTRING(IP,1, CHARINDEX('.',IP,0)-1), 3)
+ RIGHT ('000' + SUBSTRING(IP,CHARINDEX('.',IP,0)+1, CHARINDEX('.',IP,CHARINDEX('.',IP)+1) - CHARINDEX('.',IP) - 1), 3)
+ RIGHT ('000' + SUBSTRING(IP,CHARINDEX('.',IP,CHARINDEX('.',IP) + 1)+1, CHARINDEX('.',IP,CHARINDEX('.',IP,CHARINDEX('.',IP)+1)+1 ) - CHARINDEX('.',IP,CHARINDEX('.',IP)+1) - 1), 3)
+ RIGHT ('000' + SUBSTRING(IP,CHARINDEX('.',IP, CHARINDEX('.',IP,CHARINDEX('.',IP) + 1) + 1)+1,3), 3)
Result yang dihasilkan :
3.8.137.98
3.77.202.6
3.77.202.225
22.1.164.22
22.76.32.47
22.212.8.39
192.9.1.55
192.168.3.19
192.168.11.10
Ada perintah yang lebih sederhana lagi gak?





0 comments
Kick things off by filling out the form below.
Leave a Comment