Ich habe eine Tabelle mit den folgenden Spalten und Werten
ID TYPE NAME
1 MAJOR RAM
2 MAJOR SHYAM
3 MAJOR BHOLE
4 MAJOR NATHA
5 MINOR JOHN
6 MINOR SMITH
Meine Anforderung ist es, eine gespeicherte Prozedur (oder SQL-Abfrage), die die gleiche Ergebnismenge zurückgeben würde, außer dass es leere Zeile nach der TYP-Änderungen von einem Typ zu einem anderen Typ (Major, Minor).
MAJOR RAM
MAJOR SHYAM
MAJOR BHOLE
MAJOR NATHA
MINOR JOHN
MINOR SMITH
Während ich diese Abfrage für das Hinzufügen von leeren Zeile, aber es ist nicht auf der Grundlage der ID sortiert
select TYPE, NAME from (
select
TYPE as P1,
1 as P2,
ID,
TYPE,
NAME
from EMP
union all
select distinct
TYPE,
2,
'',
'',
N''
from EMP
) Report
order by P1, P2
go
Wie sortiere ich Daten nach ID
Vielen Dank im Voraus
1 Stimmen
Die kurze Antwort lautet, Tun Sie das nicht! Dies ist zu 100 % eine Frage der Ästhetik/Anzeige, die in Ihrer Anwendungsschicht behandelt werden muss, PAS auf der Ebene der Datenbank. Ich kann mir keinen Grund vorstellen, dies in einer Abfrage oder einem gespeicherten Prozess zu tun.
4 Stimmen
Das willkürliche Einfügen leerer Zeilen während des Select-Vorgangs ist ausgesprochen un-SQL. Wenn Sie die Informationen auf diese Weise übermitteln müssen, tun Sie es auf der Anzeigeebene in einer Skriptsprache, indem Sie den vorherigen Wert zwischenspeichern und mit dem aktuellen Wert vergleichen, während Sie eine Ergebnismenge iterieren. Verschmutzen Sie Ihr SQL nicht mit dieser Anforderung.
0 Stimmen
Dies ist ein typisches Darstellungsproblem in Reporting Services oder Crystal oder was auch immer > eine leere Fußzeile pro Gruppe Dies ist kein SQL-Problem