2015-06-19 63 views
0

我一直在試圖找出我可以在SQLQuery中設置一個變量。我有兩個不同的select語句,根據對IF語句的回答,它們將有不同的WHERE子句,但是我只想運行查詢來設置此變量一次,並且由於我已經在運行代碼來查找這個特定的表格,我想在第一個SELECT語句中完成。在SQL中聲明SE​​T的位置?

我想設置的變量稱爲regType

SELECT S.subID, C.cKey 
FROM Comp AS C 
JOIN JData AS J ON J.pKey = C.primary 
JOIN Sub AS S ON J.fKey = S.pKey 
WHERE (//This is where I need the variable//) 

我想創建一個變量,因爲我有第二個選擇是使用相同的WHERE子句與它相同的條件。

在這我可以在SELECT語句中設置一個變量,以便我可以在我的地方使用它?

回答

2

在where子句中「設置」一個變量是沒有意義的 - 也許你在SELECT中指的是?

SELECT 
    S.subID, 
    C.cKey, 
    @regType = ??? 
FROM Comp AS C 
JOIN JData AS J ON J.pKey = C.primary 
JOIN Sub AS S ON J.fKey = S.pKey 
WHERE (...) 

注意變量不會在你的自WHERE子句查詢WHERE條款訪問的SELECT前計算。您可以重複使用SET中的表達式,也可以在之前設置變量執行查詢。

+0

所以我將不得不有一個單獨的'SELECT'語句來填充我的regType然後如果我打算在上面的塊中使用它? –

+0

@不是或重複在'SET'中使用的表達式,是的。您可以在子查詢中執行該表達式,但不能在「WHERE」中設置該變量。 –