zgfp.net
当前位置:首页 >> sql语句或存储过程,根据表A中一个字段能查询出表B... >>

sql语句或存储过程,根据表A中一个字段能查询出表B...

Select a.code,a.name,b.name2 from a left join (Select distinct name1, name2=(select name2+',' from b where name1=t.name1 for xml path('') ) from b as t) as b on a.name=b.name1 差不多就这个样子吧

用动态语句 或试试这样行不行 select * from decode(select flag from a where id=1,0,(select * from b),1,(select * from c))

先讲一下是SQL Server还是Oracle?? 在不同的语言中,系统关键字不同的 算了,直接写了:(SQL Server版本) declare @a 这个是什么类型 select a into @a from 表1 where id=你的条件ID while(@@rowcount=0) begin select b into 你的条件ID from 表2...

创建一个存储过程 传学号,然后 存储过程里面 写一个select 按学号查询的语句就好了。 create porcedure 存储过程名 @学号 varchar(30) as begin select * from student where 学号=@学号 end

存储过程里面加入条件判断分支就行了 大致是: DECLARE @myVar [类型] SELECT @myVar=[列] FROM [表] WHERE 条件 IF @myVar=xxx BEGIN UPDATE .... END ELSE IF @myVar=xxxxx BEGIN UPDATE .... END ELSE IF .... .....

CREATE OR REPLACE PACKAGE BODY PKG_A_TESTPACKAGE IS PROCEDURE PKG_A_TESTPROCEDURE(PRM_参数 IN VARCHAR2, PRM_返回值 OUT NUMBER, PRM_错误信息 OUT VARCHAR2) IS TYPE CURSOR_TYPE IS REF CURSOR; CUR_SQL CURSOR_TYPE; TYPE TYP_REC_INFO...

用游标就行了 declare cursor cc is select sql_text from A; --声明游标 ccrec cc%rowtype; --声明游标变量 begin open cc; loop --循环取数 fetch cc into ccrec; exit when cc%notfound; --取不到数退出 begin EXECUTE IMMEDIATE 'insert int...

假设A表有3个字段,ID, DATA1,DATA2 简单的话可以不使用存储过程,比如: select * form A where ID in (select ID from A where DATA1 between 0 and 100) 如果你的应用比较复杂,在嵌套中还有复杂的运算,存储过程可以如下例子: CREATE PROCE...

不知道你为什么要这样写,,, if xxx sql1 select count() xx from sql1 end else sql2 select xxxx from sql2 xxx 为什么不采用这种方式? 如果非要拼接,还要定义@变量, 你后续还是要判断from后面引用哪个, 因为from 后面是没有 a or b的写...

问题不在于语句,问题在于【@bqkh=sum(....】 你想要多行数据,但记在变量里面的只会有一个值,变量不同于表 不会把所有的结果都记录下 如果一定要多个结果的话,使用临时表吧,把查询结果都插入临时表,或者另建一个表 每次进来就删除那个表的...

网站首页 | 网站地图
All rights reserved Powered by www.zgfp.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com