代码之家  ›  专栏  ›  技术社区  ›  Shyama Sonti

从两条备用sql语句写入临时表

  •  0
  • Shyama Sonti  · 技术社区  · 6 年前

    我想根据一个条件将两个查询的输出写入一个表中。我有这个问题,但不起作用。请告知。

    DECLARE @promptflag varchar(1) = 'N'; 
    DECLARE @pool varchar(10) = 'PJMRTO';
    
    
    IF Object_id('tempdb..#pnode') IS NOT NULL 
    DROP TABLE #pnode;
    
    select
        case when @promptflag='Y' then 
        (select distinct YES_PNODE from PRICE_NODES where ISO = @pool and Biddable='Y')
            when @promptflag='N' then
        (select distinct YES_PNODE from PRICE_NODES where ISO = @pool and Biddable='Y' and NonPrompt_Node='Y')
        end
    

    进入#pnode

    1 回复  |  直到 6 年前
        1
  •  0
  •   Gordon Linoff    6 年前

    这个想法更像这样:

    select distinct YES_PNODE
    into #pnode 
    from PRICE_NODES
    where ISO = @pool and Biddable = 'Y' and
          (@promptflag = 'Y' or  NonPrompt_Node = 'Y');
    

    这个 or 表达式只是对查询逻辑的简化。