zoukankan      html  css  js  c++  java
  • 关于存储过程中一个参数表示多个查询条件使用方法的简单处理

    发现用VS.NET 2005来写存储过程的代码相当方便顺手,题目所说得问题想了半天,晚上回到家里面装了sqlserver再接着试,终于搞定了。享受ING。
    数据如下:
    表aaa
    name       
    -----------
    1          
    2          
    3          
    4          
    5          
    6          
    7          
    8          
    9

    表bbb
    name        old        
    ----------- -----------
    1           11         
    2           22         
    3           33         
    4           44         
    5           55         
    6           66         
    7           77         
    8           88         
    9           99 

    查询aaa中指定name的记录与bbb作联合所得的数据
    ALTER PROCEDURE dbo.a

    (
     @input varchar(10),
     @input1 varchar(10)
    )
    AS
     declare @sql varchar(1000)
    set @sql=' SELECT aaa.name,bb.old FROM aaa left join (SELECT name,old FROM bbb where name in ('+@input1+')) bb on bb.name=aaa.name where aaa.name in ('+@input+')'

     print @sql
    exec (@sql)

    执行结果:

    运行[dbo].[a] ( @input = 1,2,3,5, @input1 = 2,3 ).

     SELECT aaa.name,bb.old FROM aaa left join (SELECT name,old FROM bbb where name in (2,3)) bb on bb.name=aaa.name where aaa.name in (1,2,3,5)
    name        old        
    ----------- -----------
    1           <NULL>     
    2           22         
    3           33         
    5           <NULL> 

    想了半天,经过同事提醒,发现原来可以在存储过程中组织查询语句,用execute来执行,得到结果。
    立此存照!

  • 相关阅读:
    Murano Weekly Meeting 2016.05.24
    Murano Weekly Meeting 2016.05.17
    Murano Weekly Meeting 2016.05.10
    python3.4 x86_64-linux-gnu-gcc Error
    初学makefile
    解决Spring JdbcTemplate调用queryForObject()方法结果集为空时报异常
    svn命令行使用
    jquery选中checkbox
    jstl core and jstl fn
    linux上的shutdown命令
  • 原文地址:https://www.cnblogs.com/bgming/p/549659.html
Copyright © 2011-2022 走看看