하위 쿼리 연결을 수행하는 다음 SQL 문이 있습니다. 당신이 알아 차리면, 그것은 FOR XML ..
을 사용합니다 .. 음 .. 저에게 떨림을 조금줍니다 :: 나는 어떤 코드 냄새가 나는 것처럼 느낍니다.SQL Server 2008에서이 연결을 수행하는 더 좋은 방법이 있습니까?
SQL Server 2008에서 더 좋은 방법이 있습니까?
SELECT a.CityId AS LocationId, a.City,
STUFF(
(SELECT ', ' + x.County
FROM [dbo].[CountiesView] x
INNER JOIN [dbo].[CityCounties] y ON x.CountyId = y.CountyId
WHERE y.CityId = a.CityId
FOR XML PATH (''))
, 1, 2, '')
FROM [dbo].[CitiesView] a
where a.StateCode = 'NY'
은 무엇이 코드가하고있는 것은 뉴욕의 상태에 대한 모든 도시 (및 군)을 나열한다. 도시가 1 개 이상의 카운티에 존재할 수 있으므로 카운티 이름을 협의하고 싶습니다. 그렇지 않으면 카운티 당 1 개의 도시 행이 생깁니다 (나는 원하지 않습니다).
리팩터링 할 수 있습니까?
나는 COALESCE를 사용하려고했지만 운이 없었습니다.
게시물 관련 테이블 샘플. – vonPryz
아니요, ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** 나는 그것을하는 가장 좋은 방법은 코드 냄새인가. –