【问题标题】:How to name a CASE statement如何命名 CASE 语句
【发布时间】:2014-02-18 15:22:47
【问题描述】:

我在 SQL Server 2012 中有一个存储过程,它由控制台应用程序(使用 MS Visual Studio 2013 的 VB)通过传入 2 个参数来执行。存储过程的代码在这里:

ALTER procedure [dbo].[OptimiserReads_getMaxValue]
   @ReadDate datetime,
   @tagname nvarchar(50)
AS
Begin 
   declare @first float
   declare @second float

   set @first = '265'
   set @second = (select value
                  from RawHistorianData
                  where interval = @readdate and tagname = @tagname) 

   Select 
       CASE when @first > @second then @first else @second end
end

基本上它应该产生@first@second 的结果。如果我在 SQL Server Management Studio 中执行该过程,我会得到所需的结果。

在控制台应用程序中,由于CASE 语句,我不知道如何命名结果。如何在 SQL 中为结果命名,例如

Select CASE (when @first > @second then @first else @second) as value

【问题讨论】:

    标签: sql sql-server vb.net stored-procedures


    【解决方案1】:
    Select CASE when @first > @second then @first else @second end as columnname
    

    【讨论】:

      【解决方案2】:
      Select CASE when @first > @second then @first else @second end  as value
      

      【讨论】:

        【解决方案3】:

        就像您在问题中提到的那样,您需要做的就是为您的案例陈述添加别名。

        格式如下。

        SELECT CASE WHEN @first > @second THEN @first
                    ELSE @second
               END AS BiggerValue
        

        别名可用于列、表、连接、子查询等。

        格式始终为'SomeObject' as 'Alias'

        例如:

        • 表:SELECT t.* from MyTable as t
        • 栏目:SELECT FirstName as FN from MyTable
        • 子查询SELECT * FROM (SELECT Name FROM MyTable) as SubQuery

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-04-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-01-08
          • 1970-01-01
          • 2018-09-05
          相关资源
          最近更新 更多