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

SQLSERVER 根据传入的参数拼接sql语句字符串,反馈结果集的更多相关文章

  1. java动态拼接sql语句并且执行时给sql语句的参数赋值

    问题 在这里举一个例子,比如我要做一个多条件模糊查询,用户输入的时候有可能输入一个条件,也有可能输入两个条件,这时执行查询的sql语句就不确定了,但可以用动态拼接sql语句来解决这个问题. 解决方法 ...

  2. 使用表达式避免拼接SQL语句

    在SQL语句编写过程中,无论在存储过程中还是在程序中,有时为了使语句兼容全部情况与某字段的特殊情况,不得不拼接SQL字串 如下表 商品ID 类别ID 1 1 2 1 3 2 4 3 5 3 如果我们要 ...

  3. 查询拼接SQL语句,多条件模糊查询

    多条件查询,使用StringBuilder拼接SQL语句,效果如下: 当点击按钮时代码如下: private void button1_Click(object sender, EventArgs e ...

  4. StringBuilder 拼接sql语句比较快

    StringBuilder 拼接sql语句比较快StringBuilder strBuilder = new StringBuilder();strSql += "insert into t ...

  5. 通过带参数的Sql语句来实现模糊查询(多条件查询)

    #region 通过带参数的Sql语句来实现模糊查询(多条件查询) StringBuilder sb = new StringBuilder("select * from books&quo ...

  6. ASP.NET实现列表页连接查询 拼接sql语句 绑定grivdView

    ASP.NET实现列表页连接查询 拼接sql语句 如图效果: 基本需求:1.当页面第一次加载的时候默认查询一个月时间(或者说是登陆者所属权限的所有数据)的数据绑定到gridView 2.添加查询条件时 ...

  7. 获取SQLServer的最完整数据字典的SQL语句

    原文:获取SQLServer的最完整数据字典的SQL语句 原创于2008年06月18日,2009年10月18日迁移至此. 获取SQLServer 的最完整数据字典的SQL 语句   其实网上已经流传了 ...

  8. SQL语句执行与结果集的获取

    title: SQL语句执行与结果集的获取 tags: [OLEDB, 数据库编程, VC++, 数据库] date: 2018-01-28 09:22:10 categories: windows ...

  9. 10.1(java学习笔记)JDBC基本操作(连接,执行SQL语句,获取结果集)

    一.JDBC JDBC的全称是java database connection java数据库连接. 在java中需要对数据库进行一系列的操作,这时就需要使用JDBC. sun公司制定了关于数据库操作 ...

随机推荐

  1. Js获取或计算时间的相关操作

    //获取当前日期(年月日),如:2017-12-18 function getNowDate() { var dd = new Date(); var y = dd.getFullYear(); // ...

  2. Windows API 第21篇 DeleteVolumeMountPoint 删除挂载点

    函数原型:BOOL DeleteVolumeMountPoint(                                                      LPCTSTR lpszV ...

  3. Linux实现自动登录

    使用expect实现自动登录的脚本,网上有很多,可是都没有一个明白的说明,初学者一般都是照抄.收藏.可是为什么要这么写却不知其然.本文用一个最短的例子说明脚本的原理. 脚本代码如下: #!/usr/b ...

  4. 开年巨制!千人千面回放技术让你“看到”Flutter用户侧问题

    导语 发布app后,开发者最头疼的问题就是如何解决交付后的用户侧问题的还原和定位,是业界缺乏一整套系统的解决方案的空白领域,闲鱼技术团队结合自己业务痛点在flutter上提出一套全新的技术思路解决这个 ...

  5. vim 插入行号

    :let i=1000000|g/^/s//\=i.' '/|let i=i+1

  6. Android Studio && NDK开发

    Android Studio下载安装网址:http://www.android-studio.org/index.php/download/hisversion 在下载界面可以查看安装包内是否包含SD ...

  7. NSIS nsDialogs 插件

    介绍 nsDialogs nsDialogs 允许在安装程序中创建自定义页面.居于内置的页面之上,nsDialogs 能够创建包含任何类型的以任意形式排列的控件的页面.它能够创建简至仅一个控件的页面, ...

  8. PAT甲级——A1033 To Fill or Not to Fill

    With highways available, driving a car from Hangzhou to any other city is easy. But since the tank c ...

  9. PAT甲级——A1027 Colors in Mars

    People in Mars represent the colors in their computers in a similar way as the Earth people. That is ...

  10. WPF 自适应布局控件

    public class KDLayoutGroup : Grid { public double LabelWidth { get; set; } public double GetLabelWid ...