ich folgende Tabelle habengenerieren drei Reihen in Auswahlabfrage
SELECT TableCode, Col1, Col2
FROM TableA
WHERE TableCode = 23
Ergebnis Tabelle:
TableCode | Col1 | Col1
23 | CustCode | QS
23 | CatCode | QS
Danach schrieb ich eine Abfrage auf TableA die Ausgabe nach der Rückkehr
Abfrage:
SELECT TableCode,x.ColCode,
x.ColumnName + '_' + CONVERT(VARCHAR(5), ROW_NUMBER() OVER (PARTITION BY X.COL ORDER BY X.COL)) [ColumnName],X.Values,
ROW_NUMBER() OVER (PARTITION BY X.COL ORDER BY X.COL) [RowNo]
FROM TableA a CROSS APPLY
(SELECT 1 ColCode,'ParaName' ColumnName,Col1 Values
UNION ALL
SELECT 2,'ParaSource',Col2
) x
WHERE TableCode = 23;
Ergebnis:
TableCode | ColCode | ColumnName | Values | RowNo
23 | 1 | ParaName_1 | CustCode | 1
23 | 1 | ParaName_2 | CatCode | 2
23 | 2 | ParaSource_1 | QS | 1
23 | 2 | ParaSource_2 | QS | 2
Und ich benötigt folgende Ausgabe:
Erforderliche Leistung:
TableCode | ColCode | ColumnName | Values | RowNo
23 | 1 | ParaName_1 | CustCode | 1
23 | 1 | ParaName_2 | CatCode | 2
23 | 1 | ParaName_3 | Null | 3
23 | 2 | ParaSource_1 | QS | 1
23 | 2 | ParaSource_2 | QS | 2
23 | 2 | ParaSource_3 | null | 3
dies ist mir nicht helfen, über Abfrage nicht mir die erforderliche Leistung zu bekommen, was über „ParaSource-1, ParaSource-2, ParaSource-3 " –