2008-11-20 8 views
9

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

Na przykład w jaki sposób mogę zmienić kod poniżej więc „mój komunikat” wróci, jeśli mój (wyrażenie logiczne) był prawdziwy

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

używam MS SQL 2000

Odpowiedz

17

Czy spróbować:

select 'my message'; 
+0

Możesz chcieć dołączyć nazwę pola, aby pasowała do warunku else. – BoltBait

+1

Wydaje się, że to pomija warunek? –

4

Nie mam MSSQL pod ręką, ale sprawdź składnię instrukcji CASE na wypadek, gdy źle ją odczytam, a także nie jestem pewien, czy TOP 1 powinien wyjść poza przypadek, ponieważ umieściłem go tutaj lub Jeśli to powinien wejść do środka (nazwa ELSE TOP 1). Chodzi o to:

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

Tutaj myexpression musi być albo stałe lub związane z tabel występujących w zapytaniu, na przykład

CASE WHEN address LIKE '%Michigan%' 

gdzie adres jest kolejne pole w ludziach stołowych.

PS: Znaleziono składni MSSQL CASE here :-)

4
select "my message" as message 
+0

Pomija to warunek? –

+0

Pytanie nie było, jak to zrobić warunkowo. :) – Kon

0

Właśnie próbował tego 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
select top 1 name 
from people 
where @MyParameter = whatever 

union 

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

wszystko w jednym rachunku.

Powiązane problemy