Как вы возвращаете константу из оператора sql?

Как вернуть константу из оператора sql?

например, как бы я изменил код ниже, чтобы" мое сообщение " вернулось, если бы мое (логическое выражение) было true

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

Я использую ms sql 2000

5 ответов


ты:

select 'my message';

select "my message" as message

у меня нет MSSQL под рукой, но проверьте синтаксис для оператора CASE в случае, если я ошибся, а также я не уверен, должен ли TOP 1 выходить за пределы корпуса, как я поставил его здесь, или если он должен войти внутрь (иначе TOP 1 name). Идея такова:

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

здесь myexpression должно быть либо константами, либо связанными с таблицами, присутствующими в запросе, например

CASE WHEN address LIKE '%Michigan%'

где address-другое поле в таблице people.

PS: найден синтаксис случая MSSQL здесь : -)


Я только что попробовал это в базе данных AdventureWorks, и он работает

Use AdventureWorks

Declare @myVar int
SET @myVar = 1

if (@myVar = 2)

     select top 2 * from HumanResources.Department

else

     select top 1 * from HumanResources.Department

select top 1 name 
from people
where @MyParameter = whatever

union

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

все в одном заявлении.