【问题标题】:Does anyone have an example of a User Interface for creating a SQL Where clause?有没有人有一个用于创建 SQL Where 子句的用户界面示例?
【发布时间】:2008-09-22 22:41:03
【问题描述】:

我在尝试将嵌套条件映射到直观界面时遇到了麻烦。

例如。你将如何表示 ((Condition1 AND Condition2) OR (Condition1 AND Condition5)) AND Condition4

【问题讨论】:

    标签: sql user-interface


    【解决方案1】:

    这是我几年前为一个 linux 应用程序制作的原型的屏幕截图。您可以单击 +/- 图标将行添加到组,然后单击“添加新...”和“删除最后...”按钮以删除最底部的组。

    每组上方是几个菜单按钮,可以选择“AND 匹配的项目...”/“OR 匹配的项目...”(除了第一组略有不同)和“ANY of以下”/“以下所有”。每一行都是类型感知的,因此如果您为变量选择了一个字符串,则条件将是“IS”、“IS NOT”、“BEGINS WITH”等等。对于整数,您将获得“IS”、“GREATER THAN”等,对于日期,您将获得“ON”、“BEFORE”、“ON OR BEFORE”等。

    如果您在第一组的第二行和第三行之前看到“或”一词,如果选择了“以下任何一项”,则该词将是“或”,如果选择了“以下所有内容”,则该词将是“和”:被选中是为了加强选择并使其更容易“阅读”对话框。

    它不会让您进行任何可以想象的查询,但我认为它涵盖了普通用户想要做的大约 90% 的事情,并且以我认为相当有用的方式进行。


    (来源:clearlight.com

    【讨论】:

      【解决方案2】:

      有些人会认为这很直观。

      【讨论】:

        【解决方案3】:

        假设 .NET,我会使用 DataGridView 来存储每个条件并在创建每个 ID 时为其分配一个 ID,并有一个允许您输入特定查询条件的文本框。

        然后,您可以在编写完所有条件后,允许一次将 2 个与 AND 或 OR 组合,然后显示结果查询以供验证

        条件1

        条件2

        条件3

        条件4

        条件5

        在你的情况下,一旦你将每一个添加到你的数据集并填充 DataGridView,你就会这样做(我想象一个带有 3 个下拉框的表单,顶部一个和底部一个允许条件或“复合”和中间下拉仅是 AND/OR:

        Condition1 AND Condition2 = "Compound1"

        Condition1 AND Condition5 = "Compound2"

        Compound1 OR Compound2 = "Compound3"

        Compound3 AND Condition4 = "Compound4"

         

        compound4 是您的最终查询

        有意义吗?

        【讨论】:

        • 听起来很有趣。我可以试试这个。
        【解决方案4】:

        TheBat! 拥有我个人认为最好的界面。 (用于邮件排序规则。)

        是这样的:

        源文件夹不是 \\Google\Inbox

        之一

        主题以“新评论”结尾

        OR 主题匹配“某个字符串”

        【讨论】:

          【解决方案5】:

          如果这很重要,需要花费大量时间,我会考虑使用维恩图。可视化将表示结果集而不是查询词。因此,为了演示 AND,您将显示两个代表结果的圆圈,并突出显示它们之间的重叠(交叉点)。

          为了演示 OR,您将显示两个圆圈并突出显示两者的联合。

          然后要显示整个多部分查询,您可以显示五个带有联合和交叉组合的圆圈,或者组合每个括号然后隐藏细节,使结果成为一个新的圆圈以与其他元素组合。为了清晰起见,此处进行了大量拖放操作,并动态调整子条款的大小。

          要使这个直观且易于使用需要相当多的工作,但对于某些应用程序来说,这将是一个非常强大的界面。

          【讨论】:

          • 这个答案应该会得到更多的爱。诚然,它没有按要求提供示例,但它是一个极具创意和原创的答案,可以作为一个非常酷的、开创性的 UI 的灵感。很好的答案!
          【解决方案6】:

          Microsoft SQL Server 有一个类似的界面,我在 SQL Server 2000 中使用过,但我敢打赌它也在 2005 express 中,所以如果你愿意,可以看看。

          【讨论】:

            【解决方案7】:

            查看 EasyQuery 的任何现场演示:

            http://devtools.korzh.com/easyquery/livedemos/

            它是商业软件,但“条件”部分允许您添加单个条件或条件组,这消除了具有多个 AND 和/或 OR 的子句的大量复杂性。它做得很好并且易于使用。

            (我不隶属于 EasyQuery,只是对他们的查询生成器印象深刻。)

            【讨论】:

              【解决方案8】:

              我见过的最好的界面是一个自制的控件,它画了一个树来清楚地显示操作的顺序。我从未见过这样做的第三方控件,但我也没有寻找过。

              【讨论】:

                【解决方案9】:

                您可以查看 MS Access 是如何做到的。我不会称之为直观,但它很简单。

                【讨论】:

                • 这是我看的第一个地方。它对我的目的来说不够直观,但我可能会尝试修改版本。
                【解决方案10】:

                我曾经在一个系统上工作,我们将类似于下面的布尔逻辑对齐。

                右列(内部)和(外部)提供两个逻辑级别。

                可变内外 条件 1 和 条件 2 或 条件 1 和 条件 5 和 条件4 或者更优化... 条件 4 和 条件 1 和 条件 2 或 条件5

                【讨论】:

                  【解决方案11】:

                  它是特定于它的域的,但f-spot 有一个很好的方法来做到这一点。它是照片管理软件,如果您单击其中一个标签以按标签查找图片,它会在搜索结果的顶部显示一个栏。然后,您可以将标签拖放到该条上,然后右键单击以选择否定,并且可以在条中拖动标签以将其分组到 and 和 or 子句中。我不确定它对大量标签(或非枚举条件)的扩展效果如何,但它很容易弄清楚并且交互性很好。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 2020-07-05
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2012-03-04
                    • 1970-01-01
                    • 2012-01-04
                    • 1970-01-01
                    相关资源
                    最近更新 更多