当前位置:  开发笔记 > 数据库 > 正文

选择不存在的元素

如何解决《选择不存在的元素》经验,为你挑选了1个好方法。

我正在开发一个必须为元素分配数字代码的应用程序.这个代码不是连续的,我的想法是不要将它们插入到数据库中,直到有相关的元素,但我想在sql问题中找到未分配的代码,我不知道该怎么做.

有任何想法吗?谢谢!!!

编辑1

表格可以这么简单:

code | element 
-----------------
3    | three 
7    | seven 
2    | two

我想要这样的东西:1,4,5,6.没有任何其他桌子.

编辑2

感谢您的反馈,您的答案非常有用.



1> Quassnoi..:

NULL如果未分配代码,则会返回:

SELECT  assigned_codes.code
FROM    codes 
LEFT JOIN
        assigned_codes
ON      assigned_codes.code = codes.code
WHERE   codes.code = @code

这将返回所有未分配的代码:

SELECT  codes.code
FROM    codes 
LEFT JOIN
        assigned_codes
ON      assigned_codes.code = codes.code
WHERE   assigned_codes.code IS NULL

没有纯粹的SQL方法来完成你想要的东西.

Oracle,您可以执行以下操作:

SELECT  lvl
FROM    (
        SELECT  level AS lvl
        FROM    dual
        CONNECT BY
                level <=
                (
                SELECT  MAX(code)
                FROM    elements
                )
        )
LEFT OUTER JOIN
        elements
ON      code = lvl
WHERE   code IS NULL

PostgreSQL,您可以执行以下操作:

SELECT  lvl
FROM    generate_series(
        1,
        (
        SELECT  MAX(code)
        FROM    elements
        )) lvl
LEFT OUTER JOIN
        elements
ON      code = lvl
WHERE   code IS NULL

推荐阅读
手机用户2402851335
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有