Gibt es eine Möglichkeit, diese Art der AbfrageSql: Distinct Klausel mit dynamischer Ordnung von
laufenselect distinct ri.id, r.RequestDate, count(ri.id) over() as TotalRecords
from security.RequestItemView ri
order by r.RequestDate asc
case when @SortColumn='RequestDate' and @SortOrder='ASC' then r.RequestDate end asc,
case when @SortColumn='RequestDate' and @SortOrder='DESC' then r.RequestDate end desc
Dynamische order by
Klausel funktioniert gut, bis ich distinct
-Klausel verwenden, gibt es diesen Fehler, wenn ich verschiedene verwenden
ORDER BY-Elemente müssen in der Auswahlliste erscheinen, wenn SELECT DISTINCT angegeben ist.
Ich weiß, dass wir die Spalte in der Auswahlliste haben müssen, die durch Klausel verwendet wird, um, und das ist, warum ich r.RequestDate
Spalte bin Auswahl, ich will eigentlich nicht, dass die Spalte auszuwählen, sondern distict
Arbeit, die mich machen wähle es aus, aber es funktioniert immer noch nicht.
Wenn ich ersetzen dynamische Ordnung mit festen Reihenfolge wie folgt
order by r.RequestDate asc
es zu arbeiten beginnt, so dass im Grunde dynamische order by
und distinct
Klausel zusammen funktioniert nicht.
Jeder Weg, dies zu erreichen?
Sind Sie sicher, dass der Wert "count" für Sie sinnvoll ist? "über nichts" bedeutet den gleichen Wert in jeder Zeile. –
@IvanStarostin. . . Dies ist eine ausgefallene (und ich denke ineffiziente) Art, eine Aggregation zu machen. –