代码之家  ›  专栏  ›  技术社区  ›  wusher

如何从sql语句返回常量?

  •  26
  • wusher  · 技术社区  · 17 年前

    如何从sql语句返回常量?

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

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

    我使用的是ms sql 2000

    5 回复  |  直到 17 年前
        1
  •  34
  •   Ned Batchelder    17 年前

    你试过:

    select 'my message';
    
        2
  •  8
  •   Kon    17 年前
    select "my message" as message
    
        3
  •  4
  •   Community Mohan Dere    9 年前

    我手头没有MSSQL,但请检查CASE语句的语法,以防我弄错了,而且我不确定TOP 1是应该像我在这里所说的那样放在CASE之外,还是应该放在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%'
    

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

    PS:找到MSSQL CASE语法 here :-)

        4
  •  2
  •   Bert Jeffrey Shen    17 年前
    select top 1 name 
    from people
    where @MyParameter = whatever
    
    union
    
    select 'my message' as name
    where @MyParameter != whatever
    

    所有在一个声明。

        5
  •  0
  •   Vinko Vrsalovic    17 年前

    我刚刚在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