계산 SQL 결과 행에 작용. 둘 이상의 행 인 경우 ", et al"과 같은 것을 추가하십시오. 이 쿼리는 단일 열을 반환하고 독립 실행 형을 실행할 수 있어야하지만 하위 쿼리로도 작업해야합니다.나는이 쿼리를 시작하고
어떻게이 작업을 수행 할 수 있습니까?
편집 : 지금처럼 외부 쿼리에서 TOP 1
계산 SQL 결과 행에 작용. 둘 이상의 행 인 경우 ", et al"과 같은 것을 추가하십시오. 이 쿼리는 단일 열을 반환하고 독립 실행 형을 실행할 수 있어야하지만 하위 쿼리로도 작업해야합니다.나는이 쿼리를 시작하고
어떻게이 작업을 수행 할 수 있습니까?
편집 : 지금처럼 외부 쿼리에서 TOP 1
사용 top
및 count..over
추가 한 후 포장 :
select
Plantiffs + case when PlantiffCount > 1 then ', et al' else '' end as Plantiffs
from
(
SELECT TOP 1
Parties.FirstName + ' ' + Parties.MiddleName + ' ' + Parties.LastName as Plantiffs,
count(1) over() as PlantiffCount
FROM
Jackets
INNER JOIN JacketPartyLinks ON
Jackets.Id = JacketPartyLinks.Jacket_JacketPartyLink
INNER JOIN Parties ON
Parties.Id = JacketPartyLinks.JacketPartyLink_Party
WHERE
(Jackets.Id = @JacketID) AND (JacketPartyLinks.Role = 0)
order by Parties.LastName asc
) x
count
후 over()
부분은 모든 행을 계산하도록 지시하고 아니 group by
아무것도. 따라서 해당 쿼리에는 group by
절이 없습니다. 당신은 over
을 사용할 수 있습니다. 꽤 모호한 집계 함수입니다.
모든 행을 쉼표로 구분 된 목록으로 연결하려고합니까? 두 개 이상인 경우 ", et al"을 추가 하시겠습니까? 또는 무엇을? 당신은 그냥 행을 계산할 필요가 있다면'select count (1) as mycount from ... '을 할 수 있습니다 ... – Eric
아니요, 연결하지 않아도됩니다. 방금 첫 번째 행을 반환하려는 쿼리를 조정했지만 참으로 둘 이상의 행이있는 경우 결과에 ", et al"을 추가하려고합니다. – kettch
잡았다, 대답 : – Eric