Cross-DB LIKE功能

时间:2015-07-17 10:26:48

标签: sql sql-like ansi-sql

我必须执行此查询

select * from mytable where number like '%11%

其中number是数字字段。我找到了Postgres的解决方案:

select * from mytable where CAST(number as text) like '%11%

但如果我尝试在Oracle或MySQL中执行此查询,则会出错。我需要一个

执行此操作的

cross-db指令。

1 个答案:

答案 0 :(得分:0)

您可以像这样使用LIKE运算符:

CAST(intField AS varchar(50)) LIKE '%' + CAST(intValue AS varchar(50)) + '%'

使用modulo等其他解决方案需要根据intFieldintValue的长度进行递归查询,如下例所示:

intValue = 234  &  max_length_intField = 6

(intField Between 234000 AND 234999) OR
(FLOOR(intField / 10) Between 23400 AND 23499) OR
(FLOOR(intField / 100) Between 2340 AND 2349) OR
(FLOOR(intField / 1000) = 234)