我有存储过程,里面我有select语句,插入和更新但在我的select语句中我希望结果存储在一个变量中,以便我可以在以后的update语句中访问它。如何将结果存储在变量中?这是我的选择声明:
SELECT
REV1 = COUNT(CASE WHEN QTR = 1 AND MAIN_SAT =1 AND ACTIVE_FLAG = 1 THEN 1 END),
REV2= COUNT(CASE WHEN QTR = 1 AND MAIN_EKL =1 AND ACTIVE_FLAG = 1 THEN 1 END),
REV3= COUNT(CASE WHEN QTR = 1 AND MAIN_LAM =1 AND ACTIVE_FLAG = 1 THEN 1 END),
REV4= COUNT(CASE WHEN QTR = 1 AND MAIN_JAC =1 AND ACTIVE_FLAG = 1 THEN 1 END)
FROM MyTable
此select语句的结果如下所示:
REV1 REV2 REV3 REV4
12 45 87 54
答案 0 :(得分:2)
您可以创建表变量或单个变量(取决于您的偏好)。带有单独变量的示例:
DECLARE @Rev1 int
DECLARE @Rev2 int
DECLARE @Rev3 int
DECLARE @Rev4 int
SELECT
@Rev1 = COUNT(CASE WHEN QTR = 1 AND MAIN_SAT =1 AND ACTIVE_FLAG = 1 THEN 1 END),
@Rev2= COUNT(CASE WHEN QTR = 1 AND MAIN_EKL =1 AND ACTIVE_FLAG = 1 THEN 1 END),
@Rev3= COUNT(CASE WHEN QTR = 1 AND MAIN_LAM =1 AND ACTIVE_FLAG = 1 THEN 1 END),
@Rev4= COUNT(CASE WHEN QTR = 1 AND MAIN_JAC =1 AND ACTIVE_FLAG = 1 THEN 1 END)
FROM MyTable
答案 1 :(得分:0)
试一下
这将减少病情并且更加清晰。
DECLARE @Rev1 int
DECLARE @Rev2 int
DECLARE @Rev3 int
DECLARE @Rev4 int
SELECT
@Rev1 = SUM(CASE WHEN MAIN_SAT =1 THEN 1 ELSE 0 END),
@Rev2= SUM(CASE WHEN MAIN_EKL =1 THEN 1 ELSE 0 END),
@Rev3= SUM(CASE WHEN MAIN_LAM =1 THEN 1 ELSE 0 END),
@Rev4= SUM(CASE WHEN MAIN_JAC =1THEN 1 ELSE 0 END)
FROM MyTable
WHERE QTR = 1
AND ACTIVE_FLAG = 1