Select语句总是按顺序执行/选择列?

时间:2010-05-20 09:27:08

标签: sql-server tsql

select语句中的所有列是否按列表一个接一个地被选中?

Declare @X, @Y

    SELECT 
    @X = ColumnA*.25 + ColumnB*2.5,
    @Y = ColumnA*.5 + ColumnC*1.33,
    TOTAL = @X + @Y
    FROM SomeTable

以上查询是否可以安全使用?在@X和@Y计算后总是会选择总数吗?

3 个答案:

答案 0 :(得分:3)

您不能在一个查询中混合列选择和变量赋值。

如果您选择总数变量:

SELECT  @X = ColumnA*.25 + ColumnB*2.5,
        @Y = ColumnA*.5 + ColumnC*1.33,
        @TOTAL = @X + @Y
FROM    SomeTable

,然后是,@total将在@x@y计算后分配。

答案 1 :(得分:2)

如果您打算返回结果集,我认为这不会起作用。最好以便携方式写这个:

SELECT X, Y, X + Y AS TOTAL
  FROM (SELECT ColumnA*0.25 + ColumnB*2.5 AS X,
               ColumnA*0.5 + ColumnC*1.33 AS Y,
          FROM SomeTable) xxx

答案 2 :(得分:0)

将其放入公用表格CTE

CTE =更易于维护/读取的查询

http://www.4guysfromrolla.com/webtech/071906-1.shtml