Pivot-Tabelle von Zeichenfolgen Gruppierung unter pivot-Spalte?
JOB ENAME
-------- ----------
ANALYST SCOTT
ANALYST FORD
CLERK SMITH
CLERK ADAMS
CLERK MILLER
CLERK JAMES
MANAGER JONES
MANAGER CLARK
MANAGER BLAKE
PRESIDENT KING
SALESMAN ALLEN
SALESMAN MARTIN
SALESMAN TURNER
SALESMAN WARD
Ich würde gerne formatieren Sie das Ergebnis so, dass jeder Auftrag bekommt seine eigene Spalte:
CLERKS ANALYSTS MGRS PREZ SALES
------ -------- ----- ---- ------
MILLER FORD CLARK KING TURNER
JAMES SCOTT BLAKE MARTIN
ADAMS JONES WARD
SMITH
Versuchte ich
SELECT ANALYST, CLERK, MANAGER, PRESIDENT, SALESMAN from
(
SELECT ename, job from emp
) as st
pivot
(
SELECT ename
FOR job in (ANALYST, CLERK, MANAGER, PRESIDENT, SALESMAN)
) as pivottable
Ich bin immer diese Fehler
Msg 156, Level 15, Status 1, Zeile 7
Falsche syntax bei das Schlüsselwort 'WÄHLEN'.
Msg 156, Level 15, Status 1, Zeile 8
Falsche syntax in der Nähe des Schlüsselwortes 'in'.
Wie zu verwenden pivot-zu-Gruppe-strings unter pivot-Spalte?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie mit der
PIVOT
Funktion, sind Sie verpflichtet, eine Aggregatfunktion. Die syntax einerPIVOT
ist:Vom MSDN:
Mit einem string, müssen Sie entweder die
MIN()
oderMAX()
Aggregatfunktion. Das problem, das Sie in ausgeführt wird, dass diese Funktionen liefern nur einen Wert für jede Spalte.So, in Reihenfolge zu erhalten, die
PIVOT
zu arbeiten, müssen Sie einen eindeutigen Wert, um die Zeilen zu trennen, während dieGROUP BY
.Für Ihr Beispiel, Sie können
row_number()
:Sehen SQL Fiddle mit Demo.
Den
row_number()
erstellt einen eindeutigen Wert, der zugewiesen wird, um jede Zeile in derjob
, wenn Sie die Aggregatfunktion und dieGROUP BY
imPIVOT
erhalten Sie noch separate Zeilen.