22,209
社区成员
发帖
与我相关
我的任务
分享
DECLARE @c INT ,@sql VARCHAR(max)
SET @c=1
SET @sql='SELECT '+ CASE @C WHEN 1 THEN 'A1+A2' WHEN 2 THEN 'B1+B2' END +' AS c
FROM '+ CASE @C WHEN 1 THEN 'A' WHEN 2 THEN 'B' END+'
RIGHT JOIN C ON '+ CASE @C WHEN 1 THEN 'A1=C1 AND A2=C2' WHEN 2 THEN 'B1=C1 AND B2=C2' END +' WHERE C9=''XXX'''
PRINT @sql
EXEC(@sql)
@c=1和2 分别执行下面两个语句
1.
SELECT A1+A2 AS c
FROM A
RIGHT JOIN C ON A1=C1 AND A2=C2 WHERE C9='XXX'
2.
SELECT B1+B2 AS c
FROM B
RIGHT JOIN C ON B1=C1 AND B2=C2 WHERE C9='XXX'
SELECT (CASE C WHEN 1 THEN A1+A2 WHEN 2 THEN B1+B2 END)
FROM C LEFT JOIN A ON A1=C1 AND A2=C2
LEFT JOIN B ON B1=C1 AND B2=C2
WHERE C9='XXX'
SELECT CASE WHEN C = 1 THEN A1 + A2
WHEN C = 2 THEN B1 + B2
ELSE B1 + B2
END
FROM 表
建议楼主列出表结构,并提供测试数据以及基于这些测试数据的所对应正确结果。
参考一下这个贴子的提问方式http://bbs.csdn.net/topics/320211382