22

如何从 sql 语句中返回常量?

例如,如果我的(布尔表达式)为真,我将如何更改下面的代码以便返回“我的消息”

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

我正在使用 ms sql 2000

4

5 回答 5

35

你试过了吗:

select 'my message';
于 2008-11-20T02:08:23.167 回答
8
select "my message" as message
于 2008-11-20T02:40:03.833 回答
4

我没有方便的 MSSQL,但请检查 CASE 语句的语法以防我弄错了,而且我不确定 TOP 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%'

其中地址是 people 表中的另一个字段。

PS:在这里找到 MSSQL CASE 语法:-)

于 2008-11-20T02:13:49.003 回答
2
select top 1 name 
from people
where @MyParameter = whatever

union

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

全部在一份声明中。

于 2008-11-20T04:23:00.507 回答
0

我刚刚在 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
于 2008-11-20T02:41:01.947 回答