Как вы возвращаете константу из оператора sql?
Как вернуть константу из оператора sql?
например, как бы я изменил код ниже, чтобы" мое сообщение " вернулось, если бы мое (логическое выражение) было true
if (my boolean expression)
"my message"
else
select top 1 name from people;
Я использую ms sql 2000
5 ответов
у меня нет 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
все в одном заявлении.