如何从 sql 语句中返回常量?
Posted
技术标签:
【中文标题】如何从 sql 语句中返回常量?【英文标题】:How do you return a constant from an sql statement? 【发布时间】:2010-09-23 04:17:46 【问题描述】:如何从 sql 语句中返回一个常量?
例如,如果我的(布尔表达式)为真,我将如何更改下面的代码以便返回“我的消息”
if (my boolean expression)
"my message"
else
select top 1 name from people;
我正在使用 ms sql 2000
【问题讨论】:
【参考方案1】:你试过了吗:
select 'my message';
【讨论】:
您可能希望包含一个字段名称以匹配 else 条件。 这似乎省略了条件?【参考方案2】:我没有方便的 MSSQL,但是请检查 CASE 语句的语法以防我弄错了,而且我不确定 TOP 1 是否应该像我放在这里那样超出 case 或者是否应该进去(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语法here :-)
【讨论】:
【参考方案3】:select "my message" as message
【讨论】:
问题不在于如何有条件地做到这一点。 :)【参考方案4】:我刚刚在 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
【讨论】:
【参考方案5】:select top 1 name
from people
where @MyParameter = whatever
union
select 'my message' as name
where @MyParameter != whatever
一站式服务。
【讨论】:
以上是关于如何从 sql 语句中返回常量?的主要内容,如果未能解决你的问题,请参考以下文章