如何从 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 语句中返回常量?的主要内容,如果未能解决你的问题,请参考以下文章

Oracle SQL 查询中的常量

OTL翻译 --常量的SQL语句

java:正则表达式检查SQL WHERE条件语句防止注入攻击和常量表达式

在 SQL Server 中使用常量 1 或 0 隐含位

在 PL/SQL 中使用变量和常量的困惑

PHP 2 语句 数据类型 字符串函数 常量