반응형

IP 주소에서 해당되는 아이피 숫자를 가지고 올 때에는
charindex, right, trim 등등 막 써가며 가져왔었는데
그럴필요가 없었다..-_-;
무식하면 용감하다고 ㅋㅋ

아이피주소에서 어느 부분이든 구하려면
PARSENAME을 쓰면 간단하다.

- 아이피주소중 마지막 아이피 찾을 때의 이전 방법
SELECT SUBSTRING(right(rtirm(ip주소),3),charindex('.',right(rtrim(ip주소),3))+1,3)

- PARSENAME을 쓰는 방법
SELECT PARSENAME(ip주소, 구하고자하는 번호)


하지만 parsename은 엄연히 써야할 곳이 있다는 것을 명심..

아래 부분 참고

개체 이름에서 지정된 부분을 반환합니다. 검색 가능한 개체의 부분은 개체 이름, 소유자 이름, 데이터베이스 이름 및 서버 이름입니다.

ms188006.note(ko-kr,SQL.100).gif참고:
PARSENAME 함수는 지정된 이름의 개체가 있는지 여부를 나타내지 않으며 지정된 개체 이름에서 지정된 부분만 반환합니다.

항목 링크 아이콘 Transact-SQL 구문 표기 규칙

PARSENAME ( 'object_name' , object_piece ) 
' object_name '

지정된 개체 부분을 검색할 개체의 이름입니다. object_namesysname입니다. 이 매개 변수는 선택적으로 한정된 개체 이름입니다. 개체 이름의 모든 부분이 한정되면 이 이름은 서버 이름, 데이터베이스 이름, 소유자 이름, 개체 이름 등 네 부분으로 구성됩니다.

object_piece

반환할 개체 부분입니다. object_pieceint 형식이며 다음과 같은 값을 가질 수 있습니다.

1 = 개체 이름

2 = 스키마 이름

3 = 데이터베이스 이름

4 = 서버 이름

nchar

다음 조건 중 하나가 만족되면 PARSENAME이 NULL을 반환합니다.

  • object_name 또는 object_piece가 NULL입니다.
  • 구문 오류가 발생합니다.

요청한 개체 부분의 길이가 0이고 잘못된 Microsoft SQL Server 식별자입니다. 길이가 0인 개체 이름은 한정된 이름 전체를 올바르지 않은 이름으로 렌더링합니다. 자세한 내용은 식별자를 개체 이름으로 사용을 참조하십시오.

다음 예에서는 PARSENAME을 사용하여 AdventureWorks 데이터베이스의 Contact 테이블에 대한 정보를 반환합니다.

USE AdventureWorks;
SELECT PARSENAME('AdventureWorks..Contact', 1) AS 'Object Name';
SELECT PARSENAME('AdventureWorks..Contact', 2) AS 'Schema Name';
SELECT PARSENAME('AdventureWorks..Contact', 3) AS 'Database Name';
SELECT PARSENAME('AdventureWorks..Contact', 4) AS 'Server Name';
GO

결과 집합은 다음과 같습니다.

Object Name                    
------------------------------ 
Contact                        

(1 row(s) affected)

Schema Name                     
------------------------------ 
(null)                         

(1 row(s) affected)

Database Name                  
------------------------------ 
AdventureWorks                           

(1 row(s) affected)

Server Name                    
------------------------------ 
(null)                         

(1 row(s) affected)
반응형

+ Recent posts