Select IN on more than 2100 values

后端 未结 1 1419
鱼传尺愫
鱼传尺愫 2020-12-07 05:05

How can you do a select in on more than 2100 values?


  SELECT    sub_acct_no,  ...
  FROM  dbo.Closed_ORDER
  WHERE o         


        
相关标签:
1条回答
  • 2020-12-07 05:41

    First load the values into XML

    <cfset var strResult = '<ul class="xoxo">'>
    <cfloop query="qryOrd">
        <cfset strResult &= '<li>#xmlformat(ord_no)#</li>'>
    </cfloop>
    <cfset strResult &= '</ul>'>
    

    Then use the xml in the sql query

    <cfquery name="result.qryData">
    DECLARE @xmlOrd_no       xml = <cfqueryparam cfsqltype="CF_SQL_varchar" value="#strResult#">
    
    
    DECLARE @tblOrd_no          TABLE (ID varchar(20))
    
    
    INSERT INTO @tblOrd_no
    SELECT tbl.Col.value('.', 'varchar(20)')
    FROM    @xmlOrd_no.nodes('/ul/li') tbl(Col)
    
    
    SELECT  sub_acct_no,  ...
    FROM    dbo.Closed_ORDER
    WHERE   ord_no IN (SELECT ID FROM @tblOrd_no)
    </cfquery>
    

    You can also do a dump of the XML and it is properly formatted in HTML

     <cfoutput>#strResult#</cfoutput>
    
    0 讨论(0)
提交回复
热议问题