SQL选择带表达式的列

时间:2014-09-10 03:58:13

标签: sql

我需要做SELECT之类的:

Select 
   col1, col2, (expression) as colA 
from tablex ,  

但表达式取决于外部变量@per,因此,select将类似于:

SELECT 
    col1, col2,
    case 
        @per = 1 then (col00 + col01) as colA
        @per = 2 then (col00 + col01 + col02) as colA
        @per = 3 then (col00 + col01 + col02 + col03) as colA
    end 
FROM tableX

我该怎么做?

由于

2 个答案:

答案 0 :(得分:2)

SELECT  col1,col2, colA = 
  CASE @per
     WHEN 1 THEN (col00+col01) 
     WHEN 2 THEN (col00+col01+col02) 
     WHEN 3 THEN (col00+col01+col02+col03) 
     ELSE 0
  END   
FROM tableX

答案 1 :(得分:2)

这是假设您正在使用T-SQL的代码:

SELECT col1,col2,
    case 
        WHEN @per =1 then (col00+col01) 
        WHEN @per =2 then (col00+col01+col02)
        WHEN @per =3 then (col00+col01+col02+col03)
    end as colA
FROM tableX