工作中使用到的connect by查询

建表语句:
CREATE TABLE dm_connectby_jg(
    jg_dm varchar(20),
    jg_mc varchar(200),
    jg_bz char(1),
    sj_jg_dm varchar(20)
);

INSERT INTO dm_connectby_jg VALUES ('0','中国', 'Q', 'ffffffff');
INSERT INTO dm_connectby_jg VALUES ('1','河北省', 'J', '0');
INSERT INTO dm_connectby_jg VALUES ('2','河南省', 'J', '0');
INSERT INTO dm_connectby_jg VALUES ('3','山西省', 'J', '0');

INSERT INTO dm_connectby_jg VALUES ('4','太原市', 'J', '3');
INSERT INTO dm_connectby_jg VALUES ('5','吕梁市', 'J', '3');
INSERT INTO dm_connectby_jg VALUES ('6','古交市', 'J', '3');
INSERT INTO dm_connectby_jg VALUES ('7','晋中市', 'J', '3');
INSERT INTO dm_connectby_jg VALUES ('8','文水县', 'B', '5');
INSERT INTO dm_connectby_jg VALUES ('9','交城县', 'B', '5');
INSERT INTO dm_connectby_jg VALUES ('10','祁县', 'B', '7');
INSERT INTO dm_connectby_jg VALUES ('11','平遥县', 'B', '7');
INSERT INTO dm_connectby_jg VALUES ('12','南安镇', 'B', '8');
INSERT INTO dm_connectby_jg VALUES ('13','南庄镇', 'B', '8');
INSERT INTO dm_connectby_jg VALUES ('14','南白镇', 'B', '8');
需要注意的是:当前测试的数据库是工作中使用的一个国产化数据库,ShengTong数据库。未测试其他数据库中的情形。

直接使用查询该表,默认的结果顺序如下所示:

只使用connect by结果不变

当我使用如下语句时,查询结果没有效果。

交换查询connect by后面条件,结果一样:

说明在这种数据库中必须使用PRIOR关键字。

使用PRIOR关键字修饰的字段作为左主字段,也就是取jg_dm=’8’的记录的jg_dm,与其他的记录的sj_jg_dm相等,然后循环去除所有。

下面数据显示的顺序为第一张图片的顺序取出的:

向上循环取数据,使用start with取得数据的sj_jg_dm等于其他数据的jg_dm取数据:

使用where语句是将结果集进行过滤的:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值