在SQL表条目中使用通配符

时间:2012-05-23 03:15:22

标签: sql sql-server-2008 visual-studio-2008 wildcard

我一直在寻找这样的解决方案,但到目前为止还没有积极的结果...... 我的表格包含条目数据,例如

  1. 1234
  2. 3241
  3. 8424
  4. 8_24
  5. 9_13
  6. 8_2 _
  7. 8_25
  8. 其中'_'是通配符,可以是0-9。 我想找到一种方法来检索这些数据,例如: SELECT *来自表WHERE数据LIKE'8424',查询应返回8424和8_24。

    提前谢谢!

    PS。关键是,A 数据如'8_24'可以理解为'8024'或'8124'或'8224'等, 第6排也是如此。 因此,如果我从表WHERE数据LIKE'8424'查询是SELECT *,它应返回第4行和第6行。如果我在表WHERE数据LIKE'8_2_'中使用SELECT *,则会包含第7行,这不是我想要的。

    最后, 我找到了解决方案。它非常简单,只需使用: SELECT * FROM表WHERE'8424'LIKE数据 谢谢大家的答案!

3 个答案:

答案 0 :(得分:0)

SELECT * FROM table WHERE data LIKE '8%24'

这也会吸引像'834434224'这样的东西但是......

SELECT * FROM table WHERE data LIKE '8_24'

这使用单个字符通配符(_)并且可以工作。

LIKE Command

答案 1 :(得分:0)

select * from table where data like '8[4_]24'

请参阅LIKE文档中的“模式”部分。您可以使用[]指定范围或字符集。

答案 2 :(得分:0)

从表中选择*,其中data = substr('8424',0,instr(data,''))|| SUBSTR( '8424',INSTR(数据, ''),长度(数据));

这将确保单个通配符输入

其他尝试

从表中选择*,其中replace(data,'_','%')类似于'8424';