在select语句中,在from子句中,表名会根据参数而更改。 我试过了:
from
IIf(@prmdataVal ='Dummy', tbl1, tbl2) T1
显示错误。这该怎么做?
答案 0 :(得分:2)
尝试以下内容:
DECLARE @stmt nvarchar(max);
SELECT @stmt = 'SELECT * FROM ' + CASE WHEN @prmdataVal = 'Dummy' THEN 'tbl1' ELSE 'tbl2' END
EXEC @stmt
答案 1 :(得分:0)
声明表名的变量,然后在动态SQL的from子句中调用它,工作。
Declare @TblName AS SYSNAME = CASE WHEN @prmdataVal='Dummy' THEN 'tbl1'
ELSE 'tbl2' end
然后在动态sql中调用它:
from '+@TblName +' as T1...