select语句中的所有列是否按列表一个接一个地被选中?
Declare @X, @Y
SELECT
@X = ColumnA*.25 + ColumnB*2.5,
@Y = ColumnA*.5 + ColumnC*1.33,
TOTAL = @X + @Y
FROM SomeTable
以上查询是否可以安全使用?在@X和@Y计算后总是会选择总数吗?
答案 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)