Co lumn3沒有被引用在IF
和ELSE
塊之外的任何地方。如果你想引用這個值,你將需要聲明一個新變量並使用它;
DECLARE @btColumn3 BIT
SELECT @btColumn3 = Column3 FROM @tblTableA
IF @btColumn3 = 0
SELECT Column1, Column2 FROM
@tblTableA WHERE
Column2 > 200
ELSE
SELECT Column1, Column2 FROM
@tblTableA WHERE
Column2 < 200
或者執行以下操作;
IF (SELECT Column3 FROM @tblTableA) = 0
SELECT Column1, Column2 FROM
@tblTableA WHERE
Column2 > 200
ELSE
SELECT Column1, Column2 FROM
@tblTableA WHERE
Column2 < 200
無論哪種方式,你將不得不確保用於檢索欄3的查詢或者通過限制你的查詢返回一個結果,這樣它只能返回一個值或使用MIN()
,MAX()
等根據您的要求。
另外,如果你需要的IF
和ELSE
塊內執行多個查詢您需要包裝在BEGIN
內容和END
如下:
IF @btColumn3 = 0
BEGIN
// Do a query
// Do another
END
ELSE
BEGIN
// Do a query
// Do another
END
'Select @Temp = Co如果表格中有多於一行,lumn3從TableA'將失敗。 – Oded 2010-05-26 07:04:12
這就是爲什麼我在底部說「顯然,這假設只有一個值返回Column3。」。我爲我的答案添加了不同的解決方案。 – codingbadger 2010-05-26 07:16:13