0

どうすればこれを機能させることができますか?変数が0か1かに応じて、@ result0を更新し、それを別のset @に入れて、@resultを呼び出すことができるようにしたいと思います。##tempzテーブルは存在します。しかし、これを実行すると、次のようになります:(125行が影響を受けます)

DECLARE @result nvarchar(max),@result0 nvarchar(max)
SET @showstore = 1
SET @showcashier = 0
SET @showregister = 0
SET @showdate = 0  

set @result = 'select '+@result0+' from ##tempz'
set @result0 = 'Amex,[Gift Card],Debit,[Off Line C.Card],[Str Cr],[House Acct],Cash,Rebate,[C.Card],VIP,Discover,[Check],MasterCard,[Visa/MC]'

If @showstore = 1
    begin
        set @result0 = 'StoreID,' + @result0
    end
If @showcashier = 1
    begin
        set @result0 = 'Cashier,' + @result0
    end
If @showregister = 1
    begin
        set @result0 = 'Register,' + @result0
    end
If @showdate = 1
    begin
        set @result0 = 'Date,' + @result0
    end
execute(@result)
4

1 に答える 1

2

@result結局のところ、最後の行での値を設定する必要がありますIF..ELSE

DECLARE @result nvarchar(max),@result0 nvarchar(max)
SET @showstore = 1
SET @showcashier = 0
SET @showregister = 0
SET @showdate = 0  

set @result0 = 'Amex,[Gift Card],Debit,[Off Line C.Card],[Str Cr],[House Acct],Cash,Rebate,[C.Card],VIP,Discover,[Check],MasterCard,[Visa/MC]'

If @showstore = 1
    begin
        set @result0 = 'StoreID,' + @result0
    end
If @showcashier = 1
    begin
        set @result0 = 'Cashier,' + @result0
    end
If @showregister = 1
    begin
        set @result0 = 'Register,' + @result0
    end
If @showdate = 1
    begin
        set @result0 = 'Date,' + @result0
    end
set @result = 'select '+@result0+' from ##tempz'
execute(@result)
于 2013-02-05T15:22:20.717 に答える