ORDER BY abhängig von fehlerhaften Parametern

8

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?

    
Peter de Bruijn 10.06.2015, 14:16
quelle

1 Antwort

4

Das Problem ist wahrscheinlich die Typkonvertierung von case . Wenn Sie order by auf diese Weise verwenden, verwenden Sie mehrere case -Anweisungen:

%Vor%

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.

    
Gordon Linoff 10.06.2015, 14:28
quelle

Tags und Links