22 Stimmen

Wie gibt man eine Konstante aus einer Sql-Anweisung zurück?

Wie gebe ich eine Konstante aus einer Sql-Anweisung zurück?

Wie würde ich z. B. den folgenden Code ändern, damit "meine Nachricht" zurückgegeben wird, wenn mein (boolescher Ausdruck) wahr ist?

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

Ich verwende ms sql 2000

35voto

Ned Batchelder Punkte 342778

Haben Sie es versucht?

select 'my message';

8voto

Kon Punkte 26399
select "my message" as message

4voto

Vinko Vrsalovic Punkte 252104

Ich habe MSSQL nicht zur Hand, aber überprüfen Sie die Syntax für die CASE-Anweisung, falls ich es falsch und auch ich bin nicht sicher, ob die TOP 1 außerhalb des Falles gehen sollte, wie ich es hier setzen oder wenn es innerhalb gehen sollte (ELSE TOP 1 Name). Die Idee ist:

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

Hier muss myexpression entweder eine Konstante sein oder sich auf die in der Abfrage vorhandenen Tabellen beziehen, z. B.

CASE WHEN address LIKE '%Michigan%'

wobei Adresse ein weiteres Feld in der Tabelle Leute ist.

PS: Ich habe die MSSQL CASE-Syntax gefunden aquí :-)

2voto

Bert Punkte 76058
select top 1 name 
from people
where @MyParameter = whatever

union

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

Alles in einer Erklärung.

0voto

user35559 Punkte 1008

Ich habe dies gerade mit der AdventureWorks-Datenbank ausprobiert, 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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X