;with cte as select * from customer
der Auswahl CTE um durch ParameterübergabeCTE Auswahl der Reihenfolge durch dynamischen Spaltennamen
if(@orderby=1)
begin
select * from cte order by name
end
else if (@oderby=2)
begin
select * from cte order by applydate
end
else
begin
select * from cte order by customeramount
end
dieses folgenden Fehler ungültig Objekt CTE Wie diese SQL-Abfrage zu lösen
ich das Problem
zu lösen,Der Code ist
SELECT * FROM cte ORDER BY CASE @OrderBy WHEN 0 THEN Name ELSE null END , CASE @OrderBy WHEN 1 THEN Code ELSE null END ,CASE @OrderBy WHEN 2 THEN ApplyAmountTotal ELSE null END ,CASE @OrderBy WHEN 3 THEN ApplyDate ELSE null END
So funktioniert die 'mit'-Klausel nicht. Sie können ein CTE nicht einfach deklarieren und dann in Ihrem TSQL-Skript verwenden, wo immer Sie möchten. Es kann nur als Teil einer anderen Abfrage (set) verwendet werden. Wenn Sie es zu einem späteren Zeitpunkt wiederverwenden müssen, erstellen Sie eine temporäre Tabelle (oder eine Tabellenvariable). –