是否可以合并LIKE
并IN
在SQL Server查询中使用?
所以,这个查询
SELECT * FROM table WHERE column LIKE IN ('Text%', 'Link%', 'Hello%', '%World%')
查找以下任何可能的匹配项:
Text, Textasd, Text hello, Link2, Linkomg, HelloWorld, ThatWorldBusiness
等等…
实际上,IN语句创建了一系列OR语句…因此
SELECT * FROM table WHERE column IN (1, 2, 3)
是有效的
SELECT * FROM table WHERE column = 1 OR column = 2 OR column = 3
不幸的是,这就是您必须在LIKE语句中采用的方法
SELECT * FROM table
WHERE column LIKE 'Text%' OR column LIKE 'Hello%' OR column LIKE 'That%'
问题内容: 在SQL I中,(不幸的)我经常不得不使用“ ”条件,因为数据库违反了几乎所有的规范化规则。我现在无法更改。但这与问题无关。 此外,我经常使用条件来提高SQL语句的可读性和灵活性。 有没有可能在不编写复杂的子选择的情况下将这两件事结合起来的方法? 我想要一些简单而不是这样的东西: 我在这里使用SQl Server和Oracle,但是我很感兴趣是否可以在任何RDBMS中实现。 问题答案:
问题内容: 我有一个SQL选择如下: 实际中 在这个 更复杂的选择中。是字符串(varchar)。如何扩展该sql以从中选择行, 就像 文本来自(而不是完全等于)? 问题答案: 如果您在表2的文本列中有通配符表达式,则可以这样做。 否则,您需要在查询中添加。
问题内容: 在Oracle上是否有一种简单的方法来查询n个字段的唯一组合。我有一个非常简单的两场解决方案: 查询唯一组合: 通过此查询,可以认为1,2和2,1相同。不幸的是,它不适用于三字段结构(例如,必须将1,2,3视为与3,1,2相同,因为值的顺序无关紧要)。Oracle分析功能是否为该问题提供适当的解决方案?您能建议一些特定的Oracle分析功能吗? 问题答案: 您对2列的查询可以这样重写:
我们正在使用Apache Flink(1.4.2)进行批处理,出于性能原因,我们希望在输出前将100个项目分组,而不是直接输出每个项目。 如果我们要使用DataStream API,我们将能够使用类似翻转窗口的东西(https://ci.apache.org/projects/flink/flink-docs-release-1.5/dev/stream/operators/windows.htm
问题内容: 当然,有一种框架方法可以给定整数,字符串等数组,将它们转换为可在SQL“ ”子句中使用的列表? 例如 会去 问题答案: var inClause = “(“ + String.Join(“,”, values.Select(x => x.ToString()).ToArray()) + “)”; 注意 :您不再需要在.NET Framework 4中调用。添加了一个新方法。
问题内容: 如果我有这样的查询: 并且我在该字段上有一个索引,SQL Server仍然使用该索引吗? 问题答案: 是啊,没错。如果您的表有10,000条记录,而(1,2,3)中只有5条记录,那么它很可能会使用索引来获取记录。但是,如果发现9,000条记录具有in(1,2,3),则它很可能只是执行表扫描以获取对应的s,因为仅遍历整个表比遍历每个表更快索引树的分支,并分别查看记录。 SQL Serve