2017-06-02 53 views
0

我正在嘗試創建腳本。該腳本將要聲明一個變量與觸發字之後,我需要運行的一個查詢取決於觸發字,並返回所有的結果,如:完整查詢時SQL Server查詢案例

DECLARE @name varchar(50) 
set @name = 'value from the script' 

select 
    case 
     when @name = 'orders' then (select * from orders) 
     when @name = 'sales' then (select * from sales) 
     ..etc 
    end 

但是這將導致一個錯誤,因爲我試圖用多於一行的結果運行完整查詢。我被困在這裏。感謝您使用if提前

回答

2

declare @name varchar(50); 
set @name = 'value from the script'; 

if @name = 'orders' 
begin; 
    select * from orders; 
end; 

if @name = 'sales' 
begin; 
    select * from sales; 
end; 
+0

我不知道這一點非常感謝你! – fuzunspm

+0

@fuzunspm樂意幫忙! – SqlZim

3

聲明一個變量,並將查詢到的變量。

DECLARE @name varchar(50) 
set @name = 'value from the script' 
DECLARE @MyQuery NVARCHAR(MAX) 

select 
    @MyQuery = CASE 
        WHEN @name = 'orders' then 'select * from orders' 
        WHEN @name = 'sales' then 'select * from sales' 
        ELSE 'SELECT 1' END 

EXECUTE sp_executesql @MyQuery 
0

請嘗試以下...

DECLARE @name VARCHAR(50) 

SET @name = 'value from the script' 
IF (@name = 'orders') 
    (SELECT * FROM orders) 
ELSE IF (@name = 'sales') 
    (SELECT * FROM sales)