2016-04-26 7 views

Antwort

0

Erstellen einer Tabelle mit Beispieldaten;

CREATE TABLE #TableName (ColumnName varchar(10)) 

INSERT INTO #TableName (ColumnName) 
VALUES (1),(2),(3) 

Wir tun dies mit UNION ALL;

SELECT 
ColumnName 
FROM #TableName a 
UNION ALL 
(
SELECT 
a.ColumnName + ','+ b.ColumnName 
FROM #TableName a 
CROSS JOIN #TableName b 
) 
UNION ALL 
(
SELECT 
a.ColumnName + ',' + b.ColumnName + ','+ c.ColumnName 
FROM #TableName a 
CROSS JOIN #TableName b 
CROSS JOIN #TableName c 
) 

Und lassen Sie uns aufräumen;

DROP TABLE #TableName 
+1

genau was ich will. Vielen Dank! – Jean

+1

Dies ist kein Powerset (auch wenn wir Duplikate zulassen): Der Hauptgrund ist, dass dies nur für 3 Elemente funktioniert. Sobald Sie ein viertes Element hinzufügen, erhalten Sie nicht alle möglichen Kombinationen. Wo ist 1,2,3,4? Es muss eine 'all-all'-Klausel für jedes Element geben, damit dies funktioniert. – sparebytes

+0

Es liefert die Antwort mit den gegebenen Informationen. Fühlen Sie sich frei, mit Ihrer eigenen Antwort zu antworten, wenn Sie mit meiner nicht einverstanden sind. –