2013-10-31 18 views
5

Bazı değerlerimin olduğu sql sunucusunda bir tablo var.Siparişle tümceye göre eşitle

StationId 
----- 
3 
11 
4 

, aşağıda Mesela ben aşağıdaki gibi bir sorgu, yazdım

select STUFF((SELECT distinct (',' + QuoteName(c.StationId)) 
      FROM Analytics c 
      FOR XML PATH(''), TYPE 
      ).value('.', 'NVARCHAR(MAX)') 
     ,1,1,'') 

nerede aşağıda çıkışı:

[11],[3],[4] 

Şimdi benim gereksinimi ben [3],[4],[11] olarak çıktı ihtiyaç olduğunu. Yani ne zaman SELECT DISTINCT belirtilmişse Seçim listesinde yer almalıdır öğeleri TARAFINDAN istisna altında

SİPARİŞ alıyorum

select STUFF((SELECT distinct (',' + QuoteName(c.StationId)) 
      FROM Analytics c ORDER BY c.StationId 
      FOR XML PATH(''), TYPE 
      ).value('.', 'NVARCHAR(MAX)') 
     ,1,1,'') 

olarak sorgu yeniden.

Lütfen bana bir öneride bulunun.

Sen ORDER BY ile kullanmak için GROUP BY DISTINCT kaldırarak ve ekleyerek kodunu değiştirebilir

cevap

11

:

select STUFF((SELECT (',' + QuoteName(c.StationId)) 
      FROM Analytics c 
      group by c.StationId 
      ORDER BY c.StationId 
      FOR XML PATH(''), TYPE 
      ).value('.', 'NVARCHAR(MAX)') 
     ,1,1,'') 

Bkz SQL Fiddle with Demo

İlgili konular