2017-11-09 7 views
0

라인을 중단하지 않았다 두 번째 열에 기록 tkt_no에서 다음 SQL 코드는, 그것은 여전히 ​​내가 어떻게 두 tkt_nos 사이에 브레이크 줄을 추가해야한다, AAA111 AAA112 같은 두 tkt_nos 사이에 하나의 공간을 가지고? 도와주세요, 고마워요.쿼리 결과는 라인을 깰 필요가

SELECT min(post_no) +'~'+ max(post_no) as post_no, min(tkt_no) + char(13)+char(10) + max(tkt_no) as tkt_no, plic 
FROM TEST 
WHERE date = '170711' 
GROUP BY plic 
ORDER BY post_no 

이 위의 SQL 코드 출력 :

하지만 난 '그리드 결과'내 쿼리 출력을 필요
post_no  | tkt_no  | plic 
11001~11010 | AA001 AA010 | N 
11011~11099 | AB001 AB089 | N 
12000~12001 | BA000 BA001 | C 
12002~12099 | BB001 BA098 | C 

다음과 같은 :

post_no  | tkt_no  | plic 
11001~11010 | AA001  | N 
       AA010 
11011~11099 | AB001  | N 
       AB089 
12000~12001 | BA000  | C 
       BA001 
12002~12099 | BB001  | C 
       BA098 

저를 도와주세요, 감사합니다 당신.

+0

당신이 넣어 최대 –

+0

전에 '+'누락에 '+'조회의 문자 (13) + CHAR (10) 후. – Nitesh

+0

그것은 여전히 ​​작동하지 않았다 @YogeshSharma. –

답변

1

당신이 dataset 아래 있다고 가정하면

post_no  | tkt_no  | plic 
11001~11010 | AA001 AA010 | N 
11011~11099 | AB001 AB089 | N 
12000~12001 | BA000 BA001 | C 
12002~12099 | BB001 BA098 | C 

& 당신은 당신이 당신이 격자 스타일로 사용하여 데이터를 분할 할 수있는 xml node 방법을 사용할 수 있습니다, 당신이 언급이 grid 스타일로 표시 할 것

post_no  tkt_no plic 
11001~11010 AA001 N 
      AA010 
11011~11099 AB001 N 
      AB089 
12000~12001 BA000 C 
      BA001 
12002~12099 BB001 C 
      BA098 
:

SELECT 
    case when row_number() over (partition by post_no order by (select 1)) > 1 then '' else post_no end post_no, 
    a.value('.', 'VARCHAR(MAX)') [tkt_no], 
    case when row_number() over (partition by post_no, plic order by (select 1)) > 1 then '' else plic end plic 
    FROM 
(
    SELECT post_no, CAST('<A>'+REPLACE(tkt_no, ' ', '</A><A>')+'</A>' AS XML) AS tkt_no, plic FROM <your data set> 
) A CROSS APPLY tkt_no.nodes ('/A') as split(a) 

결과 아래