sar*_*roj 4 sql database oracle
我mytable在ORACLE数据库中有一个表,只有一列Roll_no如下:
Roll_no
----------
CD01 0001
CD01 0002
CD01 0004
CD01 0005
CD01 0008
Run Code Online (Sandbox Code Playgroud)
这里CD01是固定的,在有CD01一个空格后,然后写入数字0001.
请在这里看到CD01 0003,CD01 0006,CD01 0007失踪,这些都是我需要的输出.
所需输出:
Roll_no
----------
CD01 0003
CD01 0006
CD01 0007
Run Code Online (Sandbox Code Playgroud)
如何编写SQL查询以找出这些缺少的字母数字字符?请任何想法
您可以生成完整的数字列表,然后使用NOT EXISTS(或NOT IN)过滤现有记录.例如:
SELECT new_roll_no
FROM (SELECT 'CD01 ' || to_char(rownum, 'fm0000') new_roll_no FROM dual
CONNECT BY LEVEL <= (SELECT to_number(MAX(substr(roll_no, 6))) FROM T))
WHERE new_roll_no NOT IN (SELECT roll_no FROM T)
ORDER BY 1
Run Code Online (Sandbox Code Playgroud)
以下是它的工作原理:
| 归档时间: |
|
| 查看次数: |
316 次 |
| 最近记录: |