有没有人有一个用于创建 SQL Where 子句的用户界面示例?
Posted
技术标签:
【中文标题】有没有人有一个用于创建 SQL Where 子句的用户界面示例?【英文标题】:Does anyone have an example of a User Interface for creating a SQL Where clause? 【发布时间】:2008-09-22 22:41:03 【问题描述】:我在尝试将嵌套条件映射到直观界面时遇到了麻烦。
例如。你将如何表示 ((Condition1 AND Condition2) OR (Condition1 AND Condition5)) AND Condition4
【问题讨论】:
【参考方案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 子句中。我不确定它对大量标签(或非枚举条件)的扩展效果如何,但它很容易弄清楚并且交互性很好。
【讨论】:
以上是关于有没有人有一个用于创建 SQL Where 子句的用户界面示例?的主要内容,如果未能解决你的问题,请参考以下文章