【问题标题】:How do you return a constant from an sql statement?如何从 sql 语句中返回常量?
【发布时间】:2010-09-23 04:17:46
【问题描述】:

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

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

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

我正在使用 ms sql 2000

【问题讨论】:

    标签: sql sql-server tsql sql-server-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
        

        一站式服务。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-11-03
          • 2017-02-10
          • 1970-01-01
          • 2011-07-07
          相关资源
          最近更新 更多