| 

.NET C# Java Javascript Exception

1
In meiner SELECT-Anweisung berechne ich einen booleschen Ausdruck, den ich als Spalte selecten will. Am Beispiel erklärt es sich am besten:

SELECT TOP 100 ID, DateTime, (StatusCode in (301,302)) AS IsRedirect
FROM RequestLog
ORDER BY DateTime DESC

Ich erhalte hierbei einen Syntaxfehler:
Msg 156, Level 15, State 1, Line 1
Incorrect syntax near the keyword 'in'.

Wie lautet die korrekte Syntax für dieses (an sich einfache) Problem?
27.08.2009
barrichello 131 1 4
1 Antwort
2
Eine Möglichkeit wäre es den Logischen Ausdruck in einem CASE auszuwerten und explizit z.B. auf 0 und 1 zu setzen.
SELECT TOP 100 ID, DateTime, 
(case
when (StatusCode in (301, 302)) then 1
else 0
end) AS IsRedirect
FROM RequestLog
ORDER BY DateTime DESC
28.08.2009
FalkP 3,3k 3 8
geht aber umständlich. kann man kein true/false selecten?
barrichello 28.08.2009
Nein kann man nicht! Die Antwort von FalkP ist korrekt.
BeachBlocker 10.09.2009

Stelle deine Sql-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH