ASP.NET/SQL 소수점(IP주소와 같은) 정렬하기 쿼리문


Microsoft/ASP.NET 2010.10.28 15:51



DB에서 값을 불러오다보면, IP주소 소수점이 들어간 것이 정렬이 제대로 되어있지 않을것이다.

예를 들면,

 

203.207.231.1

203.207.231.10

203.207.231.100

203.207.231..2

203.207.231.20

203.207.231.200

 

라는 식으로 되어 있는 이를 1, 2, 3, 4, … 100, 101, 102…. 바꾸기 위해선

불러오는 쿼리문의 정렬을 정의해줄 필요가 있다.

 

다음과 같이 정의 해주면된다.

 

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)

 

셀렉트 문과 같이 정해주게 되면,

SelectCommand="SELECT * FROM [iptable] 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);

 

SELECT에 본인이 뽑아오고 싶은 것을 써주고, FROM 뒤에 불러오는 테이블명을 적어주고, 다음에 ORDER로 정렬을 해주면 되겠다.

신고

WRITTEN BY
ShakeJ

0 ,