Sql Server 데이터 열 을 지정 한 내용 에 따라 데 이 터 를 나 누 는 방법 인 스 턴 스

오늘 은 업무 수요 로 인해 열 을 지정 한 내용 에 따라 데 이 터 를 나 누 어야 한다.
데이터 인 스 턴 스
 select id , XXXX FROM BIZ_PAPER where  id ='4af210ec675927fa016772bf7dd025b0'
 
분할 방법:

select t3.id ,t3.XXXX as XXXX from (
select A.id , B.XXXX from (
SELECT id, XXXX = CONVERT(xml,'<root><v>' + REPLACE(XXXX , ',', '</v><v>') + '</v></root>') FROM BIZ_PAPER) A
outer apply(
SELECT XXXX = N.v.value('.', 'varchar(100)') FROM A.XXXX .nodes('/root/v') N(v)) B) t3 where t3.id ='4af210ec675927fa016772bf7dd025b0'
결실
 
자신 이 이 코드 를 연구 한 후에 다음 과 같은 설명 을 하 겠 습 니 다.잘못된 부분 이 있 으 면 가르쳐 주 십시오.

SELECT id, XXXX = CONVERT(xml,'<root><v>' + REPLACE(XXXX , ',', '</v><v>') + '</v></root>') FROM BIZ_PAPER
이 줄 의 중점 은 CONVERT 에 있 습 니 다.XML 은 유형 을 말 합 니 다.xml 데이터 형식 인 스 턴 스 를 관계 데이터 로 나 누 면 nodes()방법 이 매우 유용 합 니 다.XML 형식의 데 이 터 는 제 가 나중에 보충 하 겠 습 니 다.
REPLACE 는','에 따라 교체 하고 지 정 된 내용 에 따라 조합 하 는 것 을 말한다.
마지막 결과
 
outer apply
이것 이 바로 표 의 관련 입 니 다.마치 left join 과 같 지만 on 이 관련 조건 이 없 기 때문에 분 리 를 통 해 많이 나 온 데 이 터 는 이 를 통 해 관련 된 것 입 니 다.

 SELECT XXXX = N.v.value('.', 'varchar(100)') FROM A.XXXX .nodes('/root/v') N(v)
N.v.value(','varchar(100)'),N 은 표,별명,v 는 열,value 함 수 는 탭 사이 의 값 을 읽 습 니 다.이 열 에 대해 서 는중간 값 을 읽 습 니 다.이것 은 xml 형식 에 자주 사용 되 는 세 가지 방법 을 알 수 있 습 니 다:value(),nodes(),exist()
value 의 첫 번 째 매개 변 수 는 XML 인 스 턴 스 내부 에서 데 이 터 를 검색 하 는 문자열 문자 입 니 다.XQuery 는 최대 한 값 을 되 돌려 야 합 니 다.그렇지 않 으 면 오 류 를 되 돌려 줍 니 다.
value 의 두 번 째 매개 변 수 는 조회 결 과 를 어떤 유형의 데이터 로 바 꾸 는 지 를 말한다.
여기 서'...'는 현재 디 렉 터 리,즉디 렉 터 리 를 표시 하고,또'...'는 상위 디 렉 터 리 를 표시 하 며,'/'는 루트 디 렉 터 리 를 표시 합 니 다.이것 은 Linux 와 같 습 니 다.
전체적으로 말 하면 이 문장의 중점 은 xml 형식의 사용 과 outer apply 의 사용 에 있 고 다른 것 은 모두 이해 하기 쉽다.이것 이 바로 내 가 이해 한 후의 설명 이 고,일부 위 치 는 나 자신 도 아직 완전히 이해 하지 못 했다.
총결산
여기 서 Sql Server 데 이 터 는 열 을 지정 한 내용 에 따라 데 이 터 를 나 누 는 글 을 소개 합 니 다.더 많은 관련 SqlServer 데이터 열 은 내용 에 따라 데이터 내용 을 나 누 어 줍 니 다.예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 바 랍 니 다!

좋은 웹페이지 즐겨찾기