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

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

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

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

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

ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
20
0
54 117
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

Ответ принят как подходящий

Ты пробовал:

select 'my message';

Возможно, вы захотите включить имя поля, чтобы оно соответствовало условию else.

BoltBait 20.11.2008 05:12

Кажется, это опускает условие?

Jonathan Leffler 20.11.2008 07:46

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

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

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

CASE WHEN address LIKE '%Michigan%'

где адрес - это еще одно поле в таблице люди.

PS: Нашел синтаксис MSSQL CASE здесь :-)

select "my message" as message

Вопрос не в том, как это сделать условно. :)

Kon 20.11.2008 20:42

Я просто попробовал это в базе данных 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

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

Другие вопросы по теме