2015-06-19 59 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”中设置该变量。 –