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 差不多就这个样子吧

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...

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

用游标就行了 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...

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

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

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

存储过程的结果无法直接与select 做union,一个办法是建一张临时表,或者使用表变量,通过insert into exec将存储过程的内容暂存起来,最后做union,大概语句像这样: declare @table table(...);insert into @tableexec zjsj '10901';select * ...

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

思路大概是这样: 实用ltrim或者rtrim函数去掉左边或右边符合条件的字符。 如果是oracle环境,看你这里都是字母在前数字在后的格式,假设旧列叫 col_old,新的字母列是col_str,新的数字列是col_num update table1 set col_str=rtrim(col_old,'1...

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