2008-11-20 12 views
9

Wie gebe ich eine Konstante aus einer SQL-Anweisung zurück?Wie gibt man eine Konstante aus einer SQL-Anweisung zurück?

Zum Beispiel, wie würde ich den Code ändern unten so "meine Botschaft" zurückkehren würde, wenn meine (boolean Ausdruck) war wahr

if (my boolean expression) 
"my message" 
else 
select top 1 name from people; 

Ich benutze MS SQL 2000

Antwort

17

Haben Sie versucht:

+0

Möglicherweise möchten Sie einen Feldnamen einfügen, der der else-Bedingung entspricht. – BoltBait

+1

Dies scheint die Bedingung wegzulassen? –

4

Ich habe MSSQL nicht handlich, aber überprüfen Sie die Syntax für die CASE-Anweisung für den Fall, dass ich es falsch verstanden habe und ich bin mir nicht sicher, ob die TOP 1 außerhalb des Falles gehen soll, wie ich es hier oder wenn es sollte nach innen gehen (Name ELSE TOP 1). Die Idee ist:

SELECT TOP 1 CASE WHEN myexpression = 'true' THEN 'my message' ELSE name END 
FROM people; 

Hier myexpression entweder Konstanten oder im Zusammenhang mit den Tabellen in der Abfrage sein, zum Beispiel

CASE WHEN address LIKE '%Michigan%' 

wo Adresse ein anderes Feld in der Tabelle Menschen.

PS: Fand die MSSQL CASE-Syntax here :-)

4
select "my message" as message 
+0

Das lässt die Bedingung weg? –

+0

Die Frage war nicht, wie man es bedingt macht. :) – Kon

0

ich das gerade versucht, auf der Adventureworks-Datenbank und es funktioniert

Use AdventureWorks 

Declare @myVar int 
SET @myVar = 1 

if (@myVar = 2) 

    select top 2 * from HumanResources.Department 

else 

    select top 1 * from HumanResources.Department 
0
select top 1 name 
from people 
where @MyParameter = whatever 

union 

select 'my message' as name 
where @MyParameter != whatever 

Alle in einer Erklärung.

Verwandte Themen