Ich habe eine gespeicherte Prozedur, die eine Reihenfolge abhängig von einem Parameter initiiert:
%Vor%Wie auch immer ... Wenn ich das Verfahren so nenne:
%Vor%Ich erhalte den folgenden Fehler:
%Vor%Warum sollte es versuchen, etwas in Datum / Zeit zu konvertieren? Kann mir bitte jemand helfen?
Das Problem ist wahrscheinlich die Typkonvertierung von case
. Wenn Sie order by
auf diese Weise verwenden, verwenden Sie mehrere case
-Anweisungen:
Das Problem ist, dass case
einen einzelnen Ausgabetyp hat, der beim Kompilieren der Abfrage bestimmt wird. Dieser Typ basiert auf einer Logik, die alle Typen der THEN
-Klausel kombiniert. Daher wird das Ergebnis jeder then
-Klausel in den Gesamttyp konvertiert - und hier tritt der Fehler auf.
Sie können über hier über Datenprioritätsregeln lesen. Aber die Lösung ist einfach: Verwenden Sie mehrere case
-Anweisungen.
Tags und Links sql sql-server sql-order-by