2014-02-18 69 views
1

我在SQL Server 2012中有一個存儲過程,由控制檯應用程序(使用MS Visual Studio 2013的VB)通過傳遞2個參數來執行。對所存儲的過程的代碼是在這裏:如何命名CASE語句

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 

回答

2

就像你在你的問題中提到,所有你需要做的是添加別名,那麼case語句。

格式如下。

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
+0

Arrrggghhhhh !!!我把它放在最後。謝謝 – Silentbob

3
Select CASE when @first > @second then @first else @second end as columnname 
3
Select CASE when @first > @second then @first else @second end as value