2018년 3월 19일 월요일

MSSQL에서 특정 컬럼을 SPLIT 해서 값을 구하고 싶을때.

일반 예제들을 보면.. split의 기능 구현만 되어 있다..

지금 내가 하려는 도서 크기의 X * Y 값에 대해서 split을 하면

테이블 반환 함수 형태가 되어 2건의 결과가 나온다..

더 중요한건 내가 원한 것은 상품코드 당 split 한 결과들이 각각 연결되야 하는데..

잘 안되더라~~

그래서 구글링~~

https://dba.stackexchange.com/questions/86143/how-to-join-a-table-with-a-table-valued-function


SELECT

M.상품코드,

M.상품크기,

U.*

FROM

상품테이블 M

CROSS APPLY dbo.fnSplit(M.상품크기,'*') U

WHERE 1=1

AND ITEM_SIZE IS NOT NULL

AND (LEN(ITEM_SIZE)-LEN(REPLACE(ITEM_SIZE,'*',''))) > 0


요딴식으로 하면

A000200752  72*105  1   72

A000200752  72*105  2   105

A000200753  83*118  1   83

A000200753  83*118  2   118

이런식으로 결과가 각각 나뉘어서 출력된다.. 오늘 CROSS APPLY란거 하나 배웠네..

나머진 알아서 요리 시작!

끗!


댓글 없음:

댓글 쓰기

[DOS] ULTIMA 2 클리어

  몰아쓰는 거라.. 포스팅을 또 함.. ​ 울티마를 하려면.. 일단 메뉴얼부터 정독을 하고 뭘해야 할 지를 정한다음 게임을 해야 한다.. ​ 2편 메뉴얼을 보니.. 형편없는 쓰레기게임이구나.. 라는 생각만 든다.. ​ 낭만의 시대적 게임이라.. 정말...