サブクエリ連結を行う次の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
いいえ、**は**それを行う最善の方法です - コード臭いかどうか。 –