惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园 - 聂微东
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
月光博客
月光博客
博客园 - 三生石上(FineUI控件)
The Cloudflare Blog
博客园 - Franky
IT之家
IT之家
V
Visual Studio Blog
博客园 - 【当耐特】
阮一峰的网络日志
阮一峰的网络日志
V
V2EX
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
爱范儿
爱范儿
Hugging Face - Blog
Hugging Face - Blog
宝玉的分享
宝玉的分享
博客园 - 叶小钗
有赞技术团队
有赞技术团队
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
酷 壳 – CoolShell
酷 壳 – CoolShell
量子位
罗磊的独立博客
小众软件
小众软件
Jina AI
Jina AI

博客园 - ylm㊣

C#线程类Thread初步 div+css构建模板技巧收藏 CrystalReport建立步骤 C# 2.0 命令行编译器 javascript (收藏代码) - ylm㊣ - 博客园 javascript 技巧(转) 给firefox添加ie方法和属性 JS菜单大全 JS弹出窗口 FRAMESET 委托的例子 每个开发人员现在应该下载的十种必备工具 C# vb.net 语法比较 C#函数集 數据庫物理設計經驗談 数据库设计经验谈(转) SQL模糊查询 正则表达式详解 关于23种设计模式的有趣见解(转)
SQl语句学习专题(转)
ylm㊣ · 2006-12-12 · via 博客园 - ylm㊣
回复人: wwl1981(小刀) ( ) 信誉:105 2003-3-21 16:04:18 得分:0

是那个家伙对数据下了手脚^_^
create table IKnowYou
(userid varchar(30),
TableName varchar(50),
Action varchar(6),
DateT datatime,
TrrigerTableColumns.....,
TrrigerTableColumns.....)
create trriger Who_Do_It on table
for update
as
declare userid varchar(30)
declare TableName varchar(50)
declare Action varchar(6)
userid=@@suser_sname
Action='update'
TableName='tabel'
insert into IKnowYou values(userid,TableName,Action,Now,select * from deleted,select * from inserted)

Top
回复人: csdntoll(低调惯了) ( ) 信誉:147 2003-3-21 17:06:52 得分:0

kill all connections to a given databse
CREATE PROCEDURE usp_killDBConnections @DBName varchar(50), @withmsg bit=1
AS
SET NOCOUNT ON
DECLARE @spidstr varchar(8000)
DECLARE @ConnKilled smallint
SET @ConnKilled=0
SET @spidstr = ''
IF db_id(@DBName) < 4
BEGIN
PRINT 'Connections to system databases cannot be killed'
RETURN
END
SELECT @spidstr=coalesce(@spidstr,',' )+'kill '+convert(varchar, spid)+ '; '
FROM master..sysprocesses WHERE dbid=db_id(@DBName)
IF LEN(@spidstr) > 0
BEGIN
EXEC(@spidstr)
SELECT @ConnKilled = COUNT(1)
FROM master..sysprocesses WHERE dbid=db_id(@DBName)
END
IF @withmsg =1
PRINT  CONVERT(VARCHAR(10), @ConnKilled) + ' Connection(s) killed for DB '  + @DBName
GO

Top
回复人: matq2008(叶子.net) ( ) 信誉:100 2003-3-21 18:00:47 得分:0

SELECT A.NUM, A.NAME, B.UPD_DATE, B.PREV_UPD_DATE
  FROM TABLE1,
    (SELECT X.NUM, X.UPD_DATE, Y.UPD_DATE PREV_UPD_DATE
        FROM (SELECT NUM, UPD_DATE, INBOUND_QTY, STOCK_ONHAND
                FROM TABLE2
              WHERE TO_CHAR(UPD_DATE,'YYYY/MM') = TO_CHAR(SYSDATE, 'YYYY/MM')) X,
            (SELECT NUM, UPD_DATE, STOCK_ONHAND
                FROM TABLE2
              WHERE TO_CHAR(UPD_DATE,'YYYY/MM') =
                    TO_CHAR(TO_DATE(TO_CHAR(SYSDATE, 'YYYY/MM') &brvbar;&brvbar; '/01','YYYY/MM/DD') - 1, 'YYYY/MM') ) Y,
        WHERE X.NUM = Y.NUM (+)
          AND X.INBOUND_QTY + NVL(Y.STOCK_ONHAND,0) <> X.STOCK_ONHAND ) B
WHERE A.NUM = B.NUM  

Top
回复人: cnuninet(www.helloaspx.com) ( ) 信誉:100 2003-3-21 18:26:32 得分:0

SELECT * FROM table ORDER BY id
SELECT * FROM table ORDER BY id DESC
正反排序,厉害吧!

Top
回复人: cnuninet(www.helloaspx.com) ( ) 信誉:100 2003-3-21 18:26:54 得分:0

还有,一次选出表中的所有内容:
SELECT * FROM table

Top
回复人: learnner(&nbsp;) ( ) 信誉:110 2003-3-21 18:42:16 得分:0

mark

Top
回复人: csdntoll(低调惯了) ( ) 信誉:147 2003-3-21 18:42:41 得分:0

楼上的哥们,厉害!^_^

Top
回复人: csdntoll(低调惯了) ( ) 信誉:147 2003-3-21 18:45:07 得分:0

不是说你,是说: cnuninet(www.helloaspx.com) ,呵呵

Top
回复人: miqier1209(米琪儿) ( ) 信誉:100 2003-3-21 22:58:39 得分:0

select * into b from a where 1<>1
这样生成的b表访问的用户没有select的权限?
请问sql DX们这个问题怎么解决?

Top
回复人: whcasp(money is best~) ( ) 信誉:105 2003-3-22 9:25:25 得分:0

厉害

Top
回复人: csdntoll(低调惯了) ( ) 信誉:147 2003-3-22 10:09:48 得分:0

Select left(field,1) as field1 from table_name order by field desc

Top
回复人: ministrybill(生命的烙印) ( ) 信誉:120 2003-3-22 10:23:58 得分:0

唉,好像称不上经典
大家来捧捧场:http://expert.csdn.net/Expert/topic/1545/1545418.xml?temp=.6732141

Top
回复人: legend9(legend) ( ) 信誉:100 2003-3-22 11:13:44 得分:0

select count(clubmember.clubid)as hot,clubmember.clubid,clubinfo.clubid,clubinfo.name from clubmember,clubinfo where clubinfo.clubid=clubmember.clubid group by clubmember.clubid order by hot DESC limit 10

Top
回复人: waterfall_cp(鸟鸟) ( ) 信誉:98 2003-3-22 11:36:37 得分:0

条件删除
DELETE DBO.TEMP WHERE FLD_CHARACTER IN
(
SELECT FLD_CHARACTER
FROM dbo.TBL_CHARACTER
WHERE (FLD_DELETED = 1) AND (FLD_LEVEL <= 18) AND
      (FLD_UPDATEDATETIME <= GETDATE() - 5)
)

Top
回复人: georgechen(小雨点) ( ) 信誉:100 2003-3-22 15:39:49 得分:0

选择前数据库里前10条记录:
1、select top 10 * from table
2、set rowcount 10
   select * from table

Top
回复人: dh20156(风之石-ASP.net学习中) ( ) 信誉:5 2003-3-22 16:13:21 得分:0

今天才把合计函数搞定:
   Set rs=conn.execute("Select min(id) as minID from TABLE") ^_^

Top
回复人: boy21cnthp(娃娃) ( ) 信誉:99 2003-3-22 17:06:00 得分:0

高手

Top
回复人: honghaier(红孩儿) ( ) 信誉:100 2003-3-22 18:23:01 得分:0

select SQL高手 from 本版发贴者
Where  得分>0

Top
回复人: sevenhzheleven(水冰) ( ) 信誉:100 2003-3-24 1:54:26 得分:0

哇,,,,高手,你们是工作的时候学的,还是读书的时候开始学的?请教

Top
回复人: ljupin(无情刀) ( ) 信誉:106 2003-3-24 2:09:57 得分:0

select * form *
会执行吗

Top
回复人: dawooo(大宇) ( ) 信誉:100 2003-3-24 8:15:58 得分:0

大宇阅览

Top
回复人: wfnuser(夏雪) ( ) 信誉:103 2003-3-24 8:52:17 得分:5

select * from 日程安排 where datediff('minute',f开始时间,getdate())>5
日程安排提前五分钟提醒。

Top
回复人: yonghengdizhen(刹那←→永恒) ( ) 信誉:112 2003-3-24 9:52:31 得分:0

to miqier1209(米琪儿) ( ) 信誉:100  2003-03-21 22:58:00  得分:0

  select * into b from a where 1<>1
这样生成的b表访问的用户没有select的权限?
请问sql DX们这个问题怎么解决?
指定dbo前缀应该可以解决问题了..

Top
回复人: accp258(男人背后的女人) ( ) 信誉:101 2003-3-24 11:17:19 得分:0

mark!

Top
回复人: suasalito(妈的,什么血这么难喝,喝可乐去) ( ) 信誉:100 2003-3-24 11:19:59 得分:0

同学们回答的都不错,恩,值得表扬

Top
回复人: hotel9545(清风剑客) ( ) 信誉:100 2003-3-24 12:10:38 得分:0

复制一张表
create table aaa as select * from bbb;

Top
回复人: fenlin(千里之行,始于足下......) ( ) 信誉:110 2003-3-24 12:21:33 得分:0

我也来凑热闹,呵呵......
<%
'取出随机记录
Randomize
RNumber = Int(Rnd*200) + 1
SQL = "SELECT * FROM Customers WHERE ID = " & RNumber
set objRec = ObjConn.Execute(SQL)
Response.WriteRNumber & " = " & objRec("ID") & " " & objRec("c_email")
%>

Top
回复人: linens(存储过程) ( ) 信誉:100 2003-3-24 13:33:10 得分:0

上面的人把视图都搬出来了啊不过几乎都是查询,我来点实用的
insert into pbrule(newrid,subj,bz,zf,orid,rstat,layer,bid) select newrid,subj,bz,zf,orid,rstat,layer,bid from pbrule1 where bruleid=bruleid
将pbrule1 表中符合条件的记录 导入 pbrule表中

Top
回复人: linens(存储过程) ( ) 信誉:100 2003-3-24 13:38:49 得分:0

下面这个更实用,就是两张关联表,删除主表中已经在副表中没有的信息
delete from info where not exists ( select * from infobz where info.infid=infobz.infid )
这条语句就是删除 INFO表中infid字段在infobz中不存在的记录
此语句用来维护数据库很有用哦。
楼主给点分吧

Top
回复人: qigang_liu(云山云海) ( ) 信誉:100 2003-3-24 15:19:57 得分:5

CREATE OR REPLACE PROCEDURE DUMP_TO_WEB_TCLHD_SP_OBJ
AS
BEGIN
CALC_PIA_PRICE ;
DELETE FROM TCLHD_SP_OBJ ;
INSERT INTO TCLHD_SP_OBJ (NAME,CODE,ID,PRICE,TYPE,FIELDS) (
SELECT c.DESCRIPTION,C.SEGMENT1,a.INVENTORY_ITEM_ID, nvl(c.ATTRIBUTE14,'0'),0,nvl(c.ATTRIBUTE13,0)
from mtl_item_categories a , mtl_categories b , mtl_system_items c  
where a.CATEGORY_ID = b.CATEGORY_ID and b.SEGMENT1='原材料'
and a.INVENTORY_ITEM_ID = c.INVENTORY_ITEM_ID AND A.ORGANIZATION_ID = 21    
and c.ORGANIZATION_ID = 21 and c.inventory_item_status_code = 'Active' );
COMMIT ;
END ;

Top
回复人: wnhoo(e梦缘) ( ) 信誉:115 2003-3-24 15:38:58 得分:0

数据库IBM DB2 》》》SQL
绝对精华
select dmbh,SJDM,flsm,dmzz from ydm where dmbh=3300
union all
select dmbh,SJDM,flsm,dmzz from ydm where dmbh in
(select dmzz from ydm where dmbh=3300)
union all
select dmbh,SJDM,flsm,dmzz from ydm where dmbh in
(select dmzz from ydm where dmbh in (
select dmzz from ydm where dmbh=3300))
union all
select dmbh,SJDM,flsm,dmzz from ydm where dmbh in
(select dmzz from ydm where dmbh in
(select dmzz from ydm where dmbh in (
select dmzz from ydm where dmbh=3300)))
union all
select dmbh,SJDM,flsm,dmzz from ydm where dmbh in
(select dmzz from ydm where dmbh in
(select dmzz from ydm where dmbh in
(select dmzz from ydm where dmbh in (
select dmzz from ydm where dmbh=3300))))
**********************************
select SJDM from ydm where dmbh=3300
union all
select SJDM from ydm where dmbh in
(select dmzz from ydm where dmbh=3300)
union all
select SJDM from ydm where dmbh in
(select dmzz from ydm where dmbh in (
select dmzz from ydm where dmbh=3300))
union all
select SJDM from ydm where dmbh in
(select dmzz from ydm where dmbh in
(select dmzz from ydm where dmbh in (
select dmzz from ydm where dmbh=3300)))
union all
select SJDM from ydm where dmbh in
(select dmzz from ydm where dmbh in
(select dmzz from ydm where dmbh in
(select dmzz from ydm where dmbh in (
select dmzz from ydm where dmbh=3300))))
**************************************************
SELECT COUNT(*) as yhs ,SUM(DF) as df FROM DB2.DFTDF
WHERE (year(rq)*12+month(rq)) between 24015 and 24015
AND dflb=513
and (ZHH,YYH) IN
(SELECT ZHH,YYxH FROM DB2.YDD111 WHERE HYM in
( select SJDM from DB2.ydm where dmbh=3200
union all
select SJDM from DB2.ydm where dmbh in (
select dmzz from DB2.ydm where dmbh=3200)
union all
select SJDM from DB2.ydm where dmbh in (
select dmzz from DB2.ydm where dmbh in (
select dmzz from DB2.ydm where dmbh=3200))
union all
select SJDM from DB2.ydm where dmbh in (
Select dmzz from DB2.ydm where dmbh in (
select dmzz from DB2.ydm where dmbh in (
select dmzz from DB2.ydm where dmbh=3200)))
union all
select SJDM from DB2.ydm where dmbh in (
select dmzz from DB2.ydm where dmbh in (
select dmzz from DB2.ydm where dmbh in (
select dmzz from DB2.ydm where dmbh in (
select dmzz from DB2.ydm where dmbh=3200))))
))
***********************************************
select bcm,bsm,count(bsm) as sl
from (
select  bcm,case
when blx='DXB' and bxh like 'DD%' AND BXH NOT LIKE 'DDS%'
then 'JJB'
else 'DZB'
end as bsm
from jldb) as jldb2
group by bcm,bsm
select bcm,bsm,count(bsm) as sl
from (
select  bcm,case
when blx='DXB' and bxh like 'DD%' AND BXH NOT LIKE 'DDS%'
then 'JJB'
else 'DZB'
end as bsm
from jldb
where bzt='OK' and qyrq between '1999-1-1' and '2003-1-3' ) as jldb2
group by bcm,bsm
****************
select bcm,bsm,bxh,count(bsm) as sl
from (
select  bcm,case
when blx='DXB' and bxh like 'DD%' AND BXH NOT LIKE 'DDS%'
then 'JJB'
else 'DZB'
end as bsm,bxh
from jldb
where bzt='OK' and qyrq between '1999-1-1' and '2003-1-3' ) as jldb2
group by bcm,bxh,bsm
**********************************************
with ttt as (select bcm,bxh,bsm,count(bsm) as sl from (select  bcm,bxh,case  when blx='DXB' and bxh like 'DD%' AND BXH NOT LIKE 'DDS%' then '机械表' else 'DZB' end
as bsm from jldb where bzt='OK' and qyrq<='2002-2-2'  ) as jldb2 group by bcm,bxh,bsm),
sss as (select bcm,bxh,bsm,count(bsm) as sl1 from (select  bcm,bxh,case  when blx='DXB' and bxh like 'DD%' AND BXH NOT LIKE 'DDS%' then '机械表' else 'DZB' end
as bsm from jldb where bzt='OK' and qyrq<='2000-1-1'  ) as jldb2 group by bcm,bxh,bsm)
select ttt.bcm,ttt.bxh,ttt.bsm,value(ttt.sl,0) as sl1,value(sss.sl1,0)  as sl2,(value(ttt.sl,0)-value(sss.sl1,0)) as sl3 from ttt full join sss
on sss.bxh=ttt.bxh and sss.bcm=ttt.bcm and sss.bsm=ttt.bsm order by ttt.bcm,ttt.bxh,ttt.bsm

Top
回复人: guzh() ( ) 信誉:100 2003-3-24 17:45:41 得分:0

看了

Top
回复人: realljx(至尊十三少) ( ) 信誉:102 2003-3-24 18:52:15 得分:0

好长

Top
回复人: shawshanke(我随风而来,随风而去) ( ) 信誉:100 2003-3-24 19:44:53 得分:0

恭喜此帖突破100大观!
--------------------------------------------------
我随风而来,又随风而去!

Top
回复人: cep50(cep50) ( ) 信誉:100 2003-3-24 20:30:58 得分:0

上当了,该软件没什么用。是在骗取别人的智慧,还要收人家的人民币。

Top
回复人: eafin(e峰.Net)(一叶枫舟) ( ) 信誉:115 2003-3-24 21:00:38 得分:0

收藏啦!
希望谁能把这些整理一下。然后我再收藏,呵呵

Top
回复人: rolandzhang() ( ) 信誉:103 2003-3-24 21:22:06 得分:0

wenhao676能否加些注释?我菜一点。

Top
回复人: coffee_black(黑咖啡) ( ) 信誉:100 2003-3-25 0:07:54 得分:0

是好贴!!

Top
回复人: zhw_yihui(卜卢特) ( ) 信誉:94 2003-3-25 8:34:10 得分:0

select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)
选择在每一组b值相同的数据中对应的a最大的(换成average或别的函数或子查询,你会有意想不到的发现)记录的所有信息.
类似这样的用法可以用于论坛每月排行榜,每月热销产品分析,按科目成绩排名,等等.
上面的许多同志对子查询存在有偏见与误解,其实在一个好的数据分析程序中,子查询可以简化很多程序逻辑.

Top
回复人: gage(蓝宝石) ( ) 信誉:100 2003-3-25 11:17:11 得分:0

收藏

Top
回复人: fvsl(楚龙) ( ) 信誉:98 2003-3-25 13:09:51 得分:0

我收藏:)

Top
回复人: zhusuhao(不以为然) ( ) 信誉:101 2003-3-25 13:51:32 得分:0

Top
回复人: fule(孤魂野鬼) ( ) 信誉:100 2003-3-25 13:59:59 得分:0

Top
回复人: 98130(Oracle) ( ) 信誉:100 2003-3-25 14:33:53 得分:0

回复人: fenlin(千里之行,始于足下......) ( ) 信誉:100  2003-03-24 12:21:00  得分:0

  我也来凑热闹,呵呵......
<%
'取出随机记录
Randomize
RNumber = Int(Rnd*200) + 1
SQL = "SELECT * FROM Customers WHERE ID = " & RNumber
set objRec = ObjConn.Execute(SQL)
Response.WriteRNumber & " = " & objRec("ID") & " " & objRec("c_email")
%>

这种方法存在bug,有可能取不出数据来,
最好还是还
select top 1 * from tablename order by newid()

Top
回复人: hisi(海山) ( ) 信誉:100 2003-3-25 16:05:23 得分:0

收藏...

Top
回复人: lyexcel(冰上飞人) ( ) 信誉:100 2003-3-25 16:36:58 得分:0

select * from
    (select top 5 * from
        (select * from
            (select top 5 *
             from GuestBook
             where 1=1 and Deleted = false
             order by GuestID desc)
        order by GuestID asc)
    order by GuestID asc)
order by GuestID desc

Top
回复人: yonghengdizhen(刹那←→永恒) ( ) 信誉:112 2003-3-25 18:37:44 得分:0

select * from
    (select top 5 * from
        (select * from
            (select top 5 *
             from GuestBook
             where 1=1 and Deleted = false
             order by GuestID desc)
        order by GuestID asc)
    order by GuestID asc)
order by GuestID desc
这可是一个经典的SQL.
大概再加几层嵌套,查询引擎都可以崩溃了..

Top
回复人: csdntoll(低调惯了) ( ) 信誉:147 2003-3-26 9:49:49 得分:0

昨天刚写的:
update picture set IsUse='1' where instr(PicPath,'_1')>0

Top
回复人: yonghengdizhen(刹那←→永恒) ( ) 信誉:112 2003-3-26 11:53:51 得分:0

下面的语句不是精华.但是却是用很多用T-SQL进行开发的同志所不了解的..
如何更新nText,Text,Image字段数据..
DECLARE @ptrval binary(16)
SELECT @ptrval = TEXTPTR(LSD_Comment)
   FROM Legal_Dispute WHERE LD_Record_No=25 --得到指定记录的nText文本指针
UPDATETEXT Legal_Dispute.LSD_Comment @ptrval 0 0 N'Insert Text Content Into Old Content Before'   ---将数据插入在老数据之前.
很多同志在更新nText字段的时候使用一个记录集取回ASP然后一次性用"UPDATE set fieldname='" & new content & old content & "'"的方式实现..
却不知道,sql string一次只能提交的string是有限制的,这样一来,实际的text,ntext永远也不可能存储它所支持的最大长度的数据..也远远不能达到使用nText字段的目的了..

Top
回复人: jtmoon(逍遥小贼) ( ) 信誉:234 2003-3-26 12:50:27 得分:0

呵呵,不错啊,收藏

Top
回复人: csdntoll(低调惯了) ( ) 信誉:147 2003-3-26 17:49:24 得分:0

有好料快点贴,不久要揭贴喽!

Top
回复人: chinahuman(枯) ( ) 信誉:105 2003-3-26 19:36:33 得分:0

高手们来看一看这个问题了http://expert.csdn.net/Expert/topic/1580/1580778.xml?temp=5.489528E-03
在线等了!

Top
回复人: yonghengdizhen(刹那←→永恒) ( ) 信誉:112 2003-3-26 21:12:14 得分:0

to 上面的兄弟
SELECT * INTO [D:\database.mdb].table4 FROM [C:\database.mdb].table1
前提是ASP用户对后者有读权限.
前者有写权限

Top
回复人: guiguai(鬼怪) ( ) 信誉:101 2003-3-26 22:09:06 得分:0

收藏!

Top
回复人: wertou() ( ) 信誉:100 2003-3-27 10:55:30 得分:0

select * from studentinfo where not exists(select * from student where studentinfo.id=student.id) and 系名称='"&strdepartmentname&"' and 专业名称='"&strprofessionname&"' order by 性别,生源地,高考总成绩

Top
回复人: Swanzy(志远) ( ) 信誉:100 2003-3-27 11:57:47 得分:0

请问查询时时有两行相同的记录,如何去掉一行?(其中包含TEXT数据类型)
select  brepeople,姓名,bbs_content.* from bbs_revert,bbs_content,bbs_userinfo where bauthor=职员id and brepeople='m043' and bbs_content.id=bid
显示“我”参加的主题回复时,如果本主题回复了两次以上,那查询的结果将有两行以上的记录。

Top
回复人: huangang(H.G) ( ) 信誉:100 2003-3-27 12:08:42 得分:0

select * form a like %keywords%
模糊查询

Top
回复人: yonghengdizhen(刹那←→永恒) ( ) 信誉:112 2003-3-27 12:20:43 得分:0

to Swanzy(志远)
包含有text类型数据是无法进行消除重复值处理的..
因为在sql server中text处理为一个指针..
读取并比较该字段需要专用的语法
如果要做,建议在存储过程中做或将该字段排除在比较条件外

Top
回复人: 98130(Oracle) ( ) 信誉:100 2003-3-27 12:41:06 得分:0

select * from
    (select top 5 * from
        (select * from
            (select top 5 *
             from GuestBook
             where 1=1 and Deleted = false
             order by GuestID desc)
        order by GuestID asc)
    order by GuestID asc)
order by GuestID desc
我怎么运行不了?

Top
回复人: yonghengdizhen(刹那←→永恒) ( ) 信誉:112 2003-3-27 14:18:27 得分:0

to 98130(Oracle)
下面的可以.但是好象看起来很没有必要
select top 1 num1 from
    (select top 5 num1 from
        (select top 1 num1 from
            (select top 5 num1
             from table1
              order by num1 desc) as a
        order by num1 asc) as b
    order by num1 asc) as c
order by num1 desc

Top
回复人: tigerflyfly(小飞虎) ( ) 信誉:100 2003-3-27 21:20:40 得分:0

取出最先的是select top *  from tablename
取出最后的几条是什么?

Top
回复人: clipper_clipper(clipper_clipper) ( ) 信誉:104 2003-3-27 21:46:59 得分:0

select count(*) from tb_tablename
经常用的,取记录数

Top
回复人: csdntoll(低调惯了) ( ) 信誉:147 2003-3-28 9:26:47 得分:0

t tigerflyfly(小飞虎)
还是用select top,只是排序倒过来即可,比如:
select top 10 * from tablename order by id desc

Top
回复人: entice(踏雪寻梅) ( ) 信誉:106 2003-3-28 9:27:16 得分:0

to tigerflyfly(小飞虎)
用排序呀。

Top
回复人: xiaojiyi(小己乙) ( ) 信誉:100 2003-3-28 11:15:44 得分:0

分页语句
select top 100 * from 表名 where id not in (select top page_no*100 * from 表名)
page_no是程序中的变量

Top
回复人: xiaoshi(js真痛苦!我要被炒了) ( ) 信誉:101 2003-3-28 11:42:47 得分:0

我收藏
中午来看

Top
回复人: alu_ok(冬瓜茶) ( ) 信誉:100 2003-3-28 13:16:31 得分:0

从数据库直接输出XML数据:
select text1,text2 from table1 where text1 like '%alu_ok%' for xml auto

Top
回复人: alu_ok(冬瓜茶) ( ) 信誉:100 2003-3-28 13:19:12 得分:0

UPDATE titles
    SET t.ytd_sales = t.ytd_sales + s.qty
    FROM titles t, sales s
    WHERE t.title_id = s.title_id
    AND s.ord_date = (SELECT MAX(sales.ord_date) FROM sales)

Top
回复人: PeterMCT(天天下雨1991) ( ) 信誉:101 2003-3-28 13:21:02 得分:0

up

Top
回复人: alu_ok(冬瓜茶) ( ) 信誉:100 2003-3-28 13:21:07 得分:0

DELETE authors
FROM (SELECT TOP 10 * FROM authors) AS t1
WHERE authors.au_id = t1.au_id

Top
回复人: alu_ok(冬瓜茶) ( ) 信誉:100 2003-3-28 13:22:26 得分:0

初始化表table1
TRUNCATE TABLE table1

Top
回复人: lxxlily(笨鸟先飞) ( ) 信誉:107 2003-3-28 13:31:43 得分:0

cnuninet(www.helloaspx.com) :晕~~

Top
回复人: zhjzh_zjz(虚心学习,望多指教) ( ) 信誉:117 2003-3-28 15:11:57 得分:0

从入库信息表和入库清单表中得期初期末库存:
SELECT a.mattype as mattype, a.matname as matname, a.spec as spec,a.indate as indate, a.amount AS lastnum, a.matsum AS lastsum,
      b.amount AS curnum, b.matsum AS cursum
FROM (SELECT a.mattype, a.matname, a.spec, TO_CHAR(a.indate, 'yyyy-mm') AS indate,
              SUM(b.amount) AS amount, SUM(b.matsum) AS matsum
        FROM (SELECT a.mattype, a.matname, a.spec, a.indate, SUM(nvl(a.amount, 0)
                      - NVL(b.amount, 0) + NVL(c.amount, 0)) AS amount, SUM(nvl(a.matsum,
                      0) - NVL(b.matsum, 0) + NVL(c.matsum, 0)) AS matsum
                FROM (SELECT a.mattype AS mattype, a.matname AS matname,
                              a.spec AS spec, b.indate AS indate, a.amount AS amount,
                              a.matsum AS matsum, b.matsource AS matsource
                        FROM materialin a, matin b
                        WHERE b.serial = a.serial) a, matuse b, matback c
                WHERE a.mattype = b.mattype (+) AND a.mattype = c.mattype (+) AND
                      a.matname = b.matname (+) AND a.matname = c.matname (+) AND
                      a.spec = b.spec (+) AND a.spec = c.spec (+) AND
                      a.indate = b.outdate (+) AND a.indate = c.backdate (+)
                GROUP BY a.mattype, a.matname, a.spec, a.indate
                UNION
                SELECT b.mattype, b.matname, b.spec, b.outdate, SUM(nvl(a.amount, 0)
                      - NVL(b.amount, 0) + NVL(c.amount, 0)) AS amount, SUM(nvl(a.matsum,
                      0) - NVL(b.matsum, 0) + NVL(c.matsum, 0)) AS matsum
                FROM (SELECT a.mattype AS mattype, a.matname AS matname,
                              a.spec AS spec, b.indate AS indate, a.amount AS amount,
                              a.matsum AS matsum, b.matsource AS matsource
                        FROM materialin a, matin b
                        WHERE b.serial = a.serial) a, matuse b, matback c
                WHERE a.mattype (+) = b.mattype AND b.mattype = c.mattype (+) AND
                      a.matname (+) = b.matname AND b.matname = c.matname (+) AND
                      a.spec (+) = b.spec AND b.spec = c.spec (+) AND
                      a.indate (+) = b.outdate AND b.outdate = c.backdate (+)
                GROUP BY b.mattype, b.matname, b.spec, b.outdate
                UNION
                SELECT c.mattype, c.matname, c.spec, c.backdate, SUM(nvl(a.amount, 0)
                      - NVL(b.amount, 0) + NVL(c.amount, 0)) AS amount, SUM(nvl(a.matsum,
                      0) - NVL(b.matsum, 0) + NVL(c.matsum, 0)) AS matsum
                FROM (SELECT a.mattype AS mattype, a.matname AS matname,
                              a.spec AS spec, b.indate AS indate, a.amount AS amount,
                              a.matsum AS matsum, b.matsource AS matsource
                        FROM materialin a, matin b
                        WHERE b.serial = a.serial) a, matuse b, matback c
                WHERE a.mattype (+) = c.mattype AND b.mattype (+) = c.mattype AND
                      a.matname (+) = c.matname AND c.matname = b.matname (+) AND
                      c.spec = a.spec (+) AND c.spec = b.spec (+) AND
                      c.backdate = b.outdate (+) AND c.backdate = a.indate (+)
                GROUP BY c.mattype, c.matname, c.spec, c.backdate) a,
                  (SELECT a.mattype, a.matname, a.spec, a.indate, SUM(nvl(a.amount, 0)
                       - NVL(b.amount, 0) + NVL(c.amount, 0)) AS amount, SUM(nvl(a.matsum,
                       0) - NVL(b.matsum, 0) + NVL(c.matsum, 0)) AS matsum
                 FROM (SELECT a.mattype AS mattype, a.matname AS matname,
                               a.spec AS spec, b.indate AS indate, a.amount AS amount,
                               a.matsum AS matsum, b.matsource AS matsource
                         FROM materialin a, matin b
                         WHERE b.serial = a.serial) a, matuse b, matback c
                 WHERE a.mattype = b.mattype (+) AND a.mattype = c.mattype (+) AND
                       a.matname = b.matname (+) AND a.matname = c.matname (+) AND
                       a.spec = b.spec (+) AND a.spec = c.spec (+) AND
                       a.indate = b.outdate (+) AND a.indate = c.backdate (+)
                 GROUP BY a.mattype, a.matname, a.spec, a.indate
                 UNION
                 SELECT b.mattype, b.matname, b.spec, b.outdate AS indate,
                       SUM(nvl(a.amount, 0) - NVL(b.amount, 0) + NVL(c.amount, 0))
                       AS amount, SUM(nvl(a.matsum, 0) - NVL(b.matsum, 0)
                       + NVL(c.matsum, 0)) AS matsum
                 FROM (SELECT a.mattype AS mattype, a.matname AS matname,
                               a.spec AS spec, b.indate AS indate, a.amount AS amount,
                               a.matsum AS matsum, b.matsource AS matsource
                         FROM materialin a, matin b
                         WHERE b.serial = a.serial) a, matuse b, matback c
                 WHERE a.mattype (+) = b.mattype AND b.mattype = c.mattype (+) AND
                       a.matname (+) = b.matname AND b.matname = c.matname (+) AND
                       a.spec (+) = b.spec AND b.spec = c.spec (+) AND
                       a.indate (+) = b.outdate AND b.outdate = c.backdate (+)
                 GROUP BY b.mattype, b.matname, b.spec, b.outdate
                 UNION
                 SELECT c.mattype, c.matname, c.spec, c.backdate AS indate,
                       SUM(nvl(a.amount, 0) - NVL(b.amount, 0) + NVL(c.amount, 0))
                       AS amount, SUM(nvl(a.matsum, 0) - NVL(b.matsum, 0)
                       + NVL(c.matsum, 0)) AS matsum
                 FROM (SELECT a.mattype AS mattype, a.matname AS matname,
                               a.spec AS spec, b.indate AS indate, a.amount AS amount,
                               a.matsum AS matsum, b.matsource AS matsource
                         FROM materialin a, matin b
                         WHERE b.serial = a.serial) a, matuse b, matback c
                 WHERE a.mattype (+) = c.mattype AND b.mattype (+) = c.mattype AND
                       a.matname (+) = c.matname AND c.matname = b.matname (+) AND
                       c.spec = a.spec (+) AND c.spec = b.spec (+) AND
                       c.backdate = b.outdate (+) AND c.backdate = a.indate (+)
                 GROUP BY c.mattype, c.matname, c.spec, c.backdate) b
        WHERE TO_CHAR(b.indate, 'yyyy-mm') <= TO_CHAR(a.indate, 'yyyy-mm') AND
              a.mattype = b.mattype (+) AND a.matname = b.matname (+) AND
              a.spec = b.spec (+)
        GROUP BY a.mattype, a.matname, a.spec, TO_CHAR(a.indate, 'yyyy-mm')) a,
---未完,待续

Top
回复人: zhjzh_zjz(虚心学习,望多指教) ( ) 信誉:117 2003-3-28 15:13:01 得分:0

---接上面
  (SELECT a.mattype, a.matname, a.spec, TO_CHAR(a.indate, 'yyyy-mm') AS indate,
               SUM(b.amount) AS amount, SUM(b.matsum) AS matsum
         FROM (SELECT a.mattype, a.matname, a.spec, a.indate, SUM(nvl(a.amount, 0)
                       - NVL(b.amount, 0) + NVL(c.amount, 0)) AS amount, SUM(nvl(a.matsum,
                       0) - NVL(b.matsum, 0) + NVL(c.matsum, 0)) AS matsum
                 FROM (SELECT a.mattype AS mattype, a.matname AS matname,
                               a.spec AS spec, b.indate AS indate, a.amount AS amount,
                               a.matsum AS matsum, b.matsource AS matsource
                         FROM materialin a, matin b
                         WHERE b.serial = a.serial) a, matuse b, matback c
                 WHERE a.mattype = b.mattype (+) AND a.mattype = c.mattype (+) AND
                       a.matname = b.matname (+) AND a.matname = c.matname (+) AND
                       a.spec = b.spec (+) AND a.spec = c.spec (+) AND
                       a.indate = b.outdate (+) AND a.indate = c.backdate (+)
                 GROUP BY a.mattype, a.matname, a.spec, a.indate
                 UNION
                 SELECT b.mattype, b.matname, b.spec, b.outdate, SUM(nvl(a.amount, 0)
                       - NVL(b.amount, 0) + NVL(c.amount, 0)) AS amount, SUM(nvl(a.matsum,
                       0) - NVL(b.matsum, 0) + NVL(c.matsum, 0)) AS matsum
                 FROM (SELECT a.mattype AS mattype, a.matname AS matname,
                               a.spec AS spec, b.indate AS indate, a.amount AS amount,
                               a.matsum AS matsum, b.matsource AS matsource
                         FROM materialin a, matin b
                         WHERE b.serial = a.serial) a, matuse b, matback c
                 WHERE a.mattype (+) = b.mattype AND b.mattype = c.mattype (+) AND
                       a.matname (+) = b.matname AND b.matname = c.matname (+) AND
                       a.spec (+) = b.spec AND b.spec = c.spec (+) AND
                       a.indate (+) = b.outdate AND b.outdate = c.backdate (+)
                 GROUP BY b.mattype, b.matname, b.spec, b.outdate
                 UNION
                 SELECT c.mattype, c.matname, c.spec, c.backdate, SUM(nvl(a.amount, 0)
                       - NVL(b.amount, 0) + NVL(c.amount, 0)) AS amount, SUM(nvl(a.matsum,
                       0) - NVL(b.matsum, 0) + NVL(c.matsum, 0)) AS matsum
                 FROM (SELECT a.mattype AS mattype, a.matname AS matname,
                               a.spec AS spec, b.indate AS indate, a.amount AS amount,
                               a.matsum AS matsum, b.matsource AS matsource
                         FROM materialin a, matin b
                         WHERE b.serial = a.serial) a, matuse b, matback c
                 WHERE a.mattype (+) = c.mattype AND b.mattype (+) = c.mattype AND
                       a.matname (+) = c.matname AND c.matname = b.matname (+) AND
                       c.spec = a.spec (+) AND c.spec = b.spec (+) AND
                       c.backdate = b.outdate (+) AND c.backdate = a.indate (+)
                 GROUP BY c.mattype, c.matname, c.spec, c.backdate) a,
                   (SELECT a.mattype, a.matname, a.spec, a.indate, SUM(nvl(a.amount, 0)
                        - NVL(b.amount, 0) + NVL(c.amount, 0)) AS amount,
                        SUM(nvl(a.matsum, 0) - NVL(b.matsum, 0) + NVL(c.matsum, 0))
                        AS matsum
                  FROM (SELECT a.mattype AS mattype, a.matname AS matname,
                                a.spec AS spec, b.indate AS indate, a.amount AS amount,
                                a.matsum AS matsum, b.matsource AS matsource
                          FROM materialin a, matin b
                          WHERE b.serial = a.serial) a, matuse b, matback c
                  WHERE a.mattype = b.mattype (+) AND a.mattype = c.mattype (+) AND
                        a.matname = b.matname (+) AND a.matname = c.matname (+) AND
                        a.spec = b.spec (+) AND a.spec = c.spec (+) AND
                        a.indate = b.outdate (+) AND a.indate = c.backdate (+)
                  GROUP BY a.mattype, a.matname, a.spec, a.indate
                  UNION
                  SELECT b.mattype, b.matname, b.spec, b.outdate AS indate,
                        SUM(nvl(a.amount, 0) - NVL(b.amount, 0) + NVL(c.amount, 0))
                        AS amount, SUM(nvl(a.matsum, 0) - NVL(b.matsum, 0)
                        + NVL(c.matsum, 0)) AS matsum
                  FROM (SELECT a.mattype AS mattype, a.matname AS matname,
                                a.spec AS spec, b.indate AS indate, a.amount AS amount,
                                a.matsum AS matsum, b.matsource AS matsource
                          FROM materialin a, matin b
                          WHERE b.serial = a.serial) a, matuse b, matback c
                  WHERE a.mattype (+) = b.mattype AND b.mattype = c.mattype (+) AND
                        a.matname (+) = b.matname AND b.matname = c.matname (+) AND
                        a.spec (+) = b.spec AND b.spec = c.spec (+) AND
                        a.indate (+) = b.outdate AND b.outdate = c.backdate (+)
                  GROUP BY b.mattype, b.matname, b.spec, b.outdate
                  UNION
                  SELECT c.mattype, c.matname, c.spec, c.backdate AS indate,
                        SUM(nvl(a.amount, 0) - NVL(b.amount, 0) + NVL(c.amount, 0))
                        AS amount, SUM(nvl(a.matsum, 0) - NVL(b.matsum, 0)
                        + NVL(c.matsum, 0)) AS matsum
                  FROM (SELECT a.mattype AS mattype, a.matname AS matname,
                                a.spec AS spec, b.indate AS indate, a.amount AS amount,
                                a.matsum AS matsum, b.matsource AS matsource
                          FROM materialin a, matin b
                          WHERE b.serial = a.serial) a, matuse b, matback c
                  WHERE a.mattype (+) = c.mattype AND b.mattype (+) = c.mattype AND
                        a.matname (+) = c.matname AND c.matname = b.matname (+) AND
                        c.spec = a.spec (+) AND c.spec = b.spec (+) AND
                        c.backdate = b.outdate (+) AND c.backdate = a.indate (+)
                  GROUP BY c.mattype, c.matname, c.spec, c.backdate) b
         WHERE TO_CHAR(b.indate, 'yyyy-mm') <= TO_CHAR(a.indate, 'yyyy-mm') AND
               a.mattype = b.mattype (+) AND a.matname = b.matname (+) AND
               a.spec = b.spec (+)
         GROUP BY a.mattype, a.matname, a.spec, TO_CHAR(a.indate, 'yyyy-mm'))
      b
WHERE a.mattype = b.mattype (+) AND a.matname = b.matname (+) AND
      a.spec = b.spec (+) AND TO_DATE(a.indate, 'yyyy-mm')
      = ADD_MONTHS(TO_DATE(b.indate, 'yyyy-mm'), 1)
--语句完毕

Top
回复人: zhjzh_zjz(虚心学习,望多指教) ( ) 信誉:117 2003-3-28 15:15:27 得分:0

上面用的是Oracle数据库。由于涉及到双向外连接,所以很长

Top
回复人: zhongjz(小海螺) ( ) 信誉:105 2003-3-28 15:46:39 得分:5

从数据库中去一年的各单位电话费统计(电话费定额贺电化肥清单两个表来源)
SELECT a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 'yyyy') AS telyear,
      SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '01', a.factration)) AS JAN,
      SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '02', a.factration)) AS FRI,
      SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '03', a.factration)) AS MAR,
      SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '04', a.factration)) AS APR,
      SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '05', a.factration)) AS MAY,
      SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '06', a.factration)) AS JUE,
      SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '07', a.factration)) AS JUL,
      SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '08', a.factration)) AS AGU,
      SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '09', a.factration)) AS SEP,
      SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '10', a.factration)) AS OCT,
      SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '11', a.factration)) AS NOV,
      SUM(decode(TO_CHAR(a.telfeedate, 'mm'), '12', a.factration)) AS DEC
FROM (SELECT a.userper, a.tel, a.standfee, b.telfeedate, b.factration
        FROM TELFEESTAND a, TELFEE b
        WHERE a.tel = b.telfax) a
GROUP BY a.userper, a.tel, a.standfee, TO_CHAR(a.telfeedate, 'yyyy')

Top
回复人: zzlcn() ( ) 信誉:86 2003-3-28 17:24:15 得分:0

请问如果有 10 万 条数据 该怎么查询,我一查询就出错
如果是3万条还可以接受,但是到了3万条以上就不稳定!
我用了 sqlserver 也没有用
10 万条数据来一次分页显示居然要 10-15秒的超长时间!!!!!
如果在分页显示中查询,立即告吹!!!
asp 和 asp.net 我都试用过(+ ms sqlserver)
均是如此
是不是 asp 和 asp.net 都是垃圾中的垃圾!!!

Top
回复人: yonghengdizhen(刹那←→永恒) ( ) 信誉:112 2003-3-28 17:40:16 得分:0

大量复杂的数据分析,在结构设计上就应该要考虑进去.适当设置一些字段或表存储分段统计信息.
否则再好的数据库都撑不住的..

Top
回复人: sishuo(思铄) ( ) 信誉:100 2003-3-29 9:39:01 得分:0

好,收了。

Top
回复人: huijunzi(Cyril) ( ) 信誉:97 2003-3-30 16:49:18 得分:5

有意思,我也来一个,解决跳号的问题:
select min(bh)+1 from Table1 where bh+1 not in(select bh from Table1)

Top
回复人: yonghengdizhen(刹那←→永恒) ( ) 信誉:112 2003-3-31 9:50:13 得分:0

进行复杂数据分析还有一种趋势那就是使用数据仓库(Data Houseware)和OLAP.

Top
回复人: bkss(白开水水) ( ) 信誉:100 2003-4-1 11:09:20 得分:0

哈哈,我也来凑热闹。。。
DECLARE @QuitMedNo char(13)
DECLARE @PreRecipeNo char(13),@PreRecipeXNo char(3)
Declare @zyxh char(12),@kdks char(8)
DECLARE @DepotName char(10)
BEGIN TRAN
if not exists(select 摆药单号 from  摆药单 where 状态='00' and 摆药单号=@PutMedNo)
begin
  return 0
end
EXECUTE Sp_GetBillNo @QuitMedNo output,'D'
INSERT INTO [退药]([退药序号], [操作员], [退药时间], [退药说明])
     VALUES(@QuitMedNo,@Operator,cast(getdate() as smalldatetime),@Intro)
if (@@error<>0 or @@rowcount=0)
    begin
  rollback transaction
  raiserror('插入退药表失败',16,-1)
  return 1
    end
DECLARE PutMed_Cursor CURSOR FOR
SELECT DISTINCT A.处方号,A.处方序号,B.住院序号,B.科室,C.名称 as 摆药区 FROM 摆药单明细 A inner join 处方 B ON A.处方号 =B.处方号 AND A.处方序号=B.处方序号
INNER JOIN 摆药区 C ON B.摆药区=C.代码 WHERE A.摆药单号=@PutMedNo
OPEN PutMed_Cursor
FETCH NEXT FROM PutMed_Cursor INTO @PreRecipeNo, @PreRecipeXNo,@zyxh,@kdks,@DepotName
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC usp_QuitBillDetail @QuitMedNo ,@PutMedNo,@PreRecipeNo,@PreRecipeXNo,@zyxh,@kdks,@fsks,@DepotName
--另一个存储过程
if (@@error<>0)
    begin
  rollback transaction
  CLOSE PutMed_Cursor
  --DEALLOCATE PutMed_Cursor
  raiserror('更新退单处方明细失败',16,-1)
  return 1
    end
    FETCH NEXT FROM PutMed_Cursor INTO @PreRecipeNo, @PreRecipeXNo,@zyxh,@kdks
END

Top
回复人: bkss(白开水水) ( ) 信誉:100 2003-4-1 11:21:36 得分:10

个人认为,偶写了这么久的SQL,只说语法很无聊,语句的涵义与灵活的组合很重要,下面这个是写的一个药品管理的存储过程的一句,很经典:
UPDATE 药房库存 SET 库存数量=库存数量-B.用量 FROM [药房库存] A ,
( Select sum(用量) as 用量,药品价码 FROM 处方项
    WHERE 处方号=@RecipeNo AND 处方序号=@RecipeXNo
  GROUP BY 药品价码
) B  WHERE A.药品价码=B.药品价码 AND A.库房名称=@DepotName
这是一个参照B表将A表中库存一一修改,而B表中存在一个求和,A表也与B表关联,同时要满足A表条件。

Top
回复人: yonghengdizhen(刹那←→永恒) ( ) 信誉:112 2003-4-1 11:26:50 得分:0

是的..SQL中应用的经典应该只考虑SQL查询的应用..
存储过程已经使用控制语法操作了,和别的程序设计语言设计算法没什么区别..

Top
回复人: yexiao(叶开) ( ) 信誉:100 2003-4-1 14:11:35 得分:0

gz

Top
回复人: rong451(rong451) ( ) 信誉:100 2003-4-1 15:43:10 得分:0

very good 我一定收藏!!!

Top
回复人: gengwei80(gengwei) ( ) 信誉:99 2003-4-2 9:40:27 得分:0

create or replace procedure p_table
(
p_g3e_fno g3e_features_optable.g3e_fno%type
)
as
v_xlmc VARCHAR2(12);
v_XLDM VARCHAR2(5);
cursor c_table IS
select g3e_table from g3e_component where g3e_cno=(select g3e_primaryattributecno
  from g3e_features_optable where g3e_fno=p_g3e_fno);
type t_sor is ref cursor;
v_sor t_sor;
str varchar2(50);
begin
  for v_table in  c_table  loop
   str:='select xlmc,xldm from '||v_table.g3e_table;
    dbms_output.put_line(v_table.g3e_table);
   open v_sor for str;
   loop
   fetch v_sor into v_xlmc,v_xldm;
    dbms_output.put_line('hello g3e_table');
    dbms_output.put_line(v_xlmc||' '||v_xldm);
   exit when v_sor%notfound;
   end loop;
   close v_sor;
  end loop;
end p_table;