相关疑难解决方法(0)

SQL中是否有"LIKE"和"IN"的组合?

在SQL中(遗憾的是)LIKE由于数据库违反了几乎所有规范化规则,因此经常不得不使用" "条件.我现在无法改变它.但这与这个问题无关.

此外,我经常使用条件,例如WHERE something in (1,1,2,3,5,8,13,21)更好的可读性和SQL语句的灵活性.

在没有编写复杂的子选择的情况下,有没有可能将这两种方法结合起来?

我想要一些简单WHERE something LIKE ('bla%', '%foo%', 'batz%')而不是这样的东西:

WHERE something LIKE 'bla%'
OR something LIKE '%foo%'
OR something LIKE 'batz%'
Run Code Online (Sandbox Code Playgroud)

我在这里使用SQl Server和Oracle,但我很感兴趣,如果在任何RDBMS中都可以这样做.

sql t-sql sql-server oracle plsql

322
推荐指数
13
解决办法
43万
查看次数

结合SQL Server的"LIKE"和"IN"

是否有可能结合起来LIKE,并IN在SQL Server的查询?

那么,这个查询

SELECT * FROM table WHERE column LIKE IN ('Text%', 'Link%', 'Hello%', '%World%')
Run Code Online (Sandbox Code Playgroud)

查找以下任何可能的匹配项:

Text, Textasd, Text hello, Link2, Linkomg, HelloWorld, ThatWorldBusiness
Run Code Online (Sandbox Code Playgroud)

等等...

sql sql-like

229
推荐指数
6
解决办法
64万
查看次数

有没有办法在SQL语句中将IN与LIKE结合起来?

我试图找到一种方法,如果可能的话,一起使用IN和LIKE.我想要完成的是放置一个子查询,将一个数据列表提取到一个IN语句中.问题是包含通配符的数据列表.有没有办法做到这一点?

只是我很好奇的东西.

Example of data in the 2 tables

Parent table

ID    Office_Code   Employee_Name
1     GG234         Tom
2     GG654         Bill
3     PQ123         Chris

Second table

ID    Code_Wildcard
1     GG%
2     PQ%
Run Code Online (Sandbox Code Playgroud)

澄清说明(通过第三方)

由于我看到几个回答似乎没有解决Ziltoid所要求的问题,我想我会尝试澄清我认为他的意思.

在SQL中," WHERE col IN (1,2,3)"大致相当于" WHERE col = 1 OR col = 2 OR col = 3".

他正在寻找我伪编码的东西

 WHERE col IN_LIKE ('A%', 'TH%E', '%C')
Run Code Online (Sandbox Code Playgroud)

这大致相当于

 WHERE col LIKE 'A%' OR col LIKE 'TH%E' OR col LIKE '%C'
Run Code Online (Sandbox Code Playgroud)

正则表达式的答案似乎最接近; 其余的看起来很不合适.

sql

7
推荐指数
2
解决办法
2万
查看次数

在SQL中结合LIKE和IN

而不是执行:

SELECT a
FROM b
WHERE a LIKE'a%'
或LIKE'b%'
或LIKE'c%'


有没有办法执行像这个伪代码一样的功能?

SELECT a
FROM b
WHERE IN('a%','b%','c%')

sql sql-server-2008

4
推荐指数
2
解决办法
5952
查看次数

如何将IN运算符与LIKE条件相结合(或获得可比结果的最佳方法)

我需要选择一个字段以几个不同前缀之一开头的行:

select * from table 
where field like 'ab%' 
  or field like 'cd%' 
  or field like "ef%" 
  or...
Run Code Online (Sandbox Code Playgroud)

在Oracle或SQL Server中使用SQL执行此操作的最佳方法是什么?我正在寻找类似以下语句(不正确)的内容:

select * from table where field like in ('ab%', 'cd%', 'ef%', ...)
Run Code Online (Sandbox Code Playgroud)

要么

select * from table where field like in (select foo from bar)
Run Code Online (Sandbox Code Playgroud)

编辑:我想看看如何通过在一个SELECT语句中给出所有前缀,将所有前缀存储在帮助程序表中来完成此操作.

前缀的长度不固定.

sql sql-server oracle

4
推荐指数
3
解决办法
2万
查看次数

SQL Server,结合LIKE和IN?

有一个简单的方法结合起来LIKE,并IN在SQL Server中的一个声明中,没有使用大量的ANDOR

例如我在MySQL中知道你可以这样做:

SELECT * FROM table1 WHERE column1 REGEXP 'value1|value2|value3'
Run Code Online (Sandbox Code Playgroud)

regex sql sql-server sql-like

4
推荐指数
1
解决办法
1195
查看次数

标签 统计

sql ×6

sql-server ×3

oracle ×2

sql-like ×2

plsql ×1

regex ×1

sql-server-2008 ×1

t-sql ×1