zoukankan      html  css  js  c++  java
  • SQLSERVER 根据传入的参数拼接sql语句字符串,反馈结果集

    ALTER PROCEDURE [dbo].[usp_visit_detail]
    (@siteid BIGINT,
     @Startime VARCHAR(15),
     @Endtime  VARCHAR(15),
     @Aflag  INT = 10,                                    --初始值为10,非10,则表示有传入参数
     @Area   VARCHAR(20) = 'N',               -- --初始值为N,非N,则表示有传入参数
     @Nflag  INT = 10,                                -初始值为10,非10,则表示有传入参数
     @VALUE1 varchar(20) = 'N'              --初始值为N,非N,则表示有传入参数


    )
    AS
    BEGIN
     DECLARE @AFlag0      varchar(50),
              @NFlag0      varchar(50), 
              --@Sqlstr0     varchar(600),
              @Sqlstr      varchar(2000) 
              
      IF @AFlag = 10 
        SET @AFlag0 = ''
      ELSE 
        SET @AFlag0 = ' AND AFlag=' + CAST(@AFlag AS VARCHAR) 


      IF @Area = 'N' 
        SET @Area = ''
      ELSE 
        SET @Area = ' AND province=' + '''' + @Area + ''''
            
      IF @NFlag = 10 
        SET @NFlag0 = ''
      ELSE 
        SET @NFlag0 = ' AND NFlag=' + CAST(@NFlag AS VARCHAR)                       

      IF @Value1 = 'N' 
        SET @Value1 = ''
      ELSE 
        SET @Value1 = ' AND value1=' + '''' + @Value1 + ''''   
       
       SET @Sqlstr =  'SELECT     a.Intime, c.Visitornm, c.Vcount, (CASE WHEN a.value2 = '+''''+''''+' THEN a.value1 + '+''''+''''+' WHEN a.value2 != '+''''+''''+' THEN a.value1 +'+ ''''+'-'+''''+' + a.value2 END) AS source0, 
       DATEDIFF(ms,a.Intime, a.Outtime) AS vtime, a.Pages, a.Rev1, dbo.GET_URL(a.SiteID, a.InURLID) AS inrul, dbo.GET_URL(a.SiteID, a.OutURLID) AS outrul
    FROM dbo.F_Pages_T AS a INNER JOIN  (SELECT     VisitorID, MAX(ID) AS id FROM dbo.F_Pages_T WHERE SiteID = '+''''+CONVERT(VARCHAR,@siteid)+''''+ 'AND day0>= '+@startime+' AND day0<= ' +@endtime+@aflag0
    +@area+   @Nflag0+ @Value1   +' GROUP BY VisitorID) AS b ON a.ID = b.id LEFT OUTER JOIN dbo.F_Visit AS c ON a.VisitorID = c.VisitorID'
                          
       PRINT @sqlstr
       EXEC (@sqlstr)
    END

  • 相关阅读:
    IDEA修改git账号及密码的方法
    深入浅出数据库索引原理
    切勿用普通for循环遍历LinkedList
    在Jquery里格式化Date日期时间数据
    Java 根据年月日精确计算年龄
    jquery判断页面元素是否存在
    js中 '枚举' 的使用
    springMVC怎么接受前台传过来的多种类型参数?(集合、实体、单个参数)
    jquery批量绑定click事件
    springMVC怎么接收日期类型的参数?
  • 原文地址:https://www.cnblogs.com/hlfei/p/3778259.html
Copyright © 2011-2022 走看看