zoukankan      html  css  js  c++  java
  • 临时表在存储过程中存放查询结果

    先来张图:

    看到这样的需求。我们一般会去拼接Sql语句,这样有Sql注入的风险,想到了用数据库做查询。把条件放到一张临时表中。具体代码如下

    create  proc [dbo].[pro_SelectUserInfo](@sort int,@value varchar(20) ='',@create_time date = '',@sex int)
    as
     
    begin
    --查询结果放在一个临时表中
    IF OBJECT_ID('tempdb..#tmp') IS NOT NULL
    DROP TABLE #tmp
    
    SELECT 显示的具体信息  INTO  #tmp   from 表名   连接的条件  
    where  sex = CASE @sex WHEN -1 THEN sex ELSE @sex END  --sex的值只有0和1  -1的时候就没有值进行赋值
    		AND CONVERT(date,tbl_member.create_time) = CASE @create_time WHEN '' THEN CONVERT(date,tbl_member.create_time) ELSE @create_time END
    		AND CHARINDEX( CASE @value WHEN '' THEN member_id + '|' + phone+'|'+tbl_member.name ELSE @value END,member_id + '|' + phone+'|'+tbl_member.name) > 0
    		AND tbl_member.enable = 1     --手机号和姓名作为条件
    
    ---排序条件 IF @sort = 1 SELECT * FROM #tmp ORDER BY member_id ASC ELSE SELECT * FROM #tmp ORDER BY member_id DESC end
  • 相关阅读:
    对象数组深拷贝
    百度地图 轨迹
    vant mp-vue
    Nginx代理webSocket时60s自动断开, 怎么保持长连接
    python_传递任意数量的实参
    python_函数传递列表
    python_形参、实参
    python_函数、局部变量与全局变量
    python_三级字典
    python_字典的使用
  • 原文地址:https://www.cnblogs.com/sunliyuan/p/5754020.html
Copyright © 2011-2022 走看看