zoukankan      html  css  js  c++  java
  • 查询已用编号分布情况的示例(子查询法).sql

    --测试数据
    CREATE TABLE tb(col1 varchar(10),col2 int)
    INSERT tb SELECT 'a',2
    UNION ALL SELECT 'a',3
    UNION ALL SELECT 'a',6
    UNION ALL SELECT 'a',7
    UNION ALL SELECT 'a',8
    UNION ALL SELECT 'b',3
    UNION ALL SELECT 'b',5
    UNION ALL SELECT 'b',6
    UNION ALL SELECT 'b',7
    GO

    --已用编号分布查询
    SELECT col1,start_col2=col2,
     end_col2=(
      SELECT MIN(col2) FROM tb aa
      WHERE col1=a.col1 AND col2>=a.col2
       AND NOT EXISTS(
        SELECT * FROM tb WHERE col1=aa.col1 AND col2=aa.col2+1))
    FROM tb a
    WHERE NOT EXISTS(
     SELECT * FROM tb WHERE col1=a.col1 and col2=a.col2-1)
    /*--结果
    col1       start_col2  end_col2   
    -------------- -------------- -----------
    a          2           3
    a          6           8
    b          3           3
    b          5           7
    --*/

  • 相关阅读:
    左旋一个字符串和手摇反转法
    LCS
    游戏服务器学习_1
    面试题_带答案_2
    面试题_带答案
    安卓_13
    安卓_12activity
    安卓_12
    多盟_1
    安卓没删干净导致报错
  • 原文地址:https://www.cnblogs.com/dushu/p/2508618.html
Copyright © 2011-2022 走看看