create table tb(ip varchar(15)) insert into tb values('192.168.0.1') insert into tb values('92.68.10.1') insert into tb values('192.168.1.1') goselect * from tb order by right('0'+parsename(ip,4),3), right('0'+parsename(ip,3),3), right('0'+parsename(ip,2),3), right('0'+parsename(ip,1),3)drop table tb/* ip --------------- 92.68.10.1 192.168.0.1 192.168.1.1(所影响的行数为 3 行) */
用parsename()函数,真是太妙了,厉害
应该加两个0才对.create table tb(ip varchar(15)) insert into tb values('192.168.0.1') insert into tb values('92.68.10.1') insert into tb values('192.168.1.1') go select * from tb order by right('00'+parsename(ip,4),3), right('00'+parsename(ip,3),3), right('00'+parsename(ip,2),3), right('00'+parsename(ip,1),3) drop table tb
123
14
14
123
insert into tb values('192.168.0.1')
insert into tb values('92.68.10.1')
insert into tb values('192.168.1.1')
goselect * from tb
order by
right('0'+parsename(ip,4),3),
right('0'+parsename(ip,3),3),
right('0'+parsename(ip,2),3),
right('0'+parsename(ip,1),3)drop table tb/*
ip
---------------
92.68.10.1
192.168.0.1
192.168.1.1(所影响的行数为 3 行)
*/
insert into tb values('192.168.0.1')
insert into tb values('92.68.10.1')
insert into tb values('192.168.1.1')
go select * from tb
order by
right('00'+parsename(ip,4),3),
right('00'+parsename(ip,3),3),
right('00'+parsename(ip,2),3),
right('00'+parsename(ip,1),3) drop table tb