Pytanie Jak zwrócić stałą z instrukcji sql?


Jak zwrócić stałą z instrukcji sql?

Na przykład jak zmienić kod poniżej, aby "moja wiadomość" powróciła, gdyby moje (wyrażenie logiczne) było prawdziwe

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

Używam ms sql 2000


10
2017-11-20 02:02


pochodzenie




Odpowiedzi:


Próbowałeś:

select 'my message';

18
2017-11-20 02:08



Możesz dołączyć nazwę pola, aby dopasować warunek else. - BoltBait
Wydaje się, że to pomija ten warunek? - Jonathan Leffler


select "my message" as message

4
2017-11-20 02:40



Pomija to warunek? - Jonathan Leffler
Pytanie nie było, jak to zrobić warunkowo. :) - Kon


Nie mam MSSQL pod ręką, ale sprawdź składnię instrukcji CASE na wypadek, gdy źle ją zrozumiałem, a także nie jestem pewien, czy TOP 1 powinien wyjść poza przypadek, ponieważ umieściłem go tutaj, czy powinien on wejść do środka ( Nazwa ELSE TOP 1). Pomysł jest następujący:

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

Tutaj myexpression musi być na przykład stałą lub związaną z tabelami obecnymi w zapytaniu

CASE WHEN address LIKE '%Michigan%'

gdzie adres to inne pole w tabeli ludzie.

PS: Znaleziono składnię MSSQL CASE tutaj :-)


4
2017-11-20 02:13





Po prostu wypróbowałem to w bazie danych AdventureWorks i działa

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
2017-11-20 02:41





select top 1 name 
from people
where @MyParameter = whatever

union

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

Wszystko w jednym komunikacie.


0
2017-11-20 04:23