2017-02-20 4 views
0

Ich habe diese SQL:Wie mache ich eine Bestellung, wenn eine Gruppe von Teil der SQL ist?

Select Substring([English],1,1) Col1, 
convert(varchar,Count(1)) Col2 
From Phrase Group by Substring([English], 1, 1) 

Gibt es eine Weise, die ich dies durch den Wert von Substring bestellen kann ([Englisch], 1, 1)?

+0

auf die Antworten Hinzufügen gegeben: Sie können einfach natürlich hinzufügen 'ORDER BY Substring ([Englisch], 1, 1)' - eine bloße Kopieren und Einfügen, ein Wort gewechselt. –

+1

[Schlechte Angewohnheiten zu kicken: 'varchar' ohne (Länge) zu deklarieren - Aaron Bertrand] (http://sqlblog.com/blogs/aaron_bertrand/archive/2009/10/09/bad-habits-to-kick-declaring- varchar-without-length.aspx) – SqlZim

Antwort

2

einfach die Bestellung hinzufügen, indem Sie nach der Gruppe.

Hinweis Sie können Aliase aus der Auswahl in der Reihenfolge nach, aber nicht in der Gruppe von verwenden; als group by wird vor dem select ausgeführt, und order by wird nach dem select ausgeführt.

SELECT Substring([English],1,1) Col1 
     , convert(varchar,Count(1)) Col2 
FROM Phrase 
GROUP BY Substring([English], 1, 1) 
ORDER BY COL1 
+1

@DVT ja, aktualisiert gemacht. – xQbert

0
select Col1, Col2 FROM 
(Select Substring([English],1,1) Col1, 
convert(varchar,Count(1)) Col2 
From Phrase Group by Substring([English], 1, 1) 
) as Table1 
Order By Col1 
+3

Es gibt keine Notwendigkeit in der Unterabfrage - fügen Sie am Ende der Anweisung einfach 'order by' hinzu und verweisen Sie auf berechnete Spaltenaliase. –

1

Sortieren nach nach der Spalte Berechnung auftritt, können Sie die Spalte Alias ​​

Select Substring([English],1,1) Col1, 
    convert(varchar,Count(1)) Col2 
    From Phrase 
    Group by Substring([English], 1, 1) 
    Order By Col1 
1

Verwenden Sie einfach order by mit Spaltenalias.

Select Substring([English],1,1) Col1, 
convert(varchar,Count(1)) Col2 
From Phrase Group by Substring([English], 1, 1) 
order by Col1 
Verwandte Themen