Sql 交叉类DB函数

Sql 交叉类DB函数,sql,sql-like,ansi-sql,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中执行此查询,则会出现错误。我需要一个 执行此操作的交叉db指令。您可以像这样使用操作符: CAST(intField AS varchar(50)) LI

我必须执行这个查询

select * from mytable where number like '%11%
其中number是一个数字字段。我找到了Postgres的解决方案:

select * from mytable where CAST(number as text) like '%11%
但如果我尝试在Oracle或MySQL中执行此查询,则会出现错误。我需要一个


执行此操作的交叉db指令。

您可以像这样使用
操作符:

CAST(intField AS varchar(50)) LIKE '%' + CAST(intValue AS varchar(50)) + '%'
其他解决方案(如使用模运算)需要基于
intField
intValue
的长度进行递归查询,如以下示例:

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)

你有没有试过的代码?但是为什么你想对一个数字这样做?我必须验证一个订单号(这是一个数字字段)是否包含一个特定的数字。大多数DBMS支持一个版本的模运算符,结合整数除法。这可以用来提取数字。你能展示一些实际数据以及你想如何处理它吗?@Domenico。请提供你正在寻找的例子
LIKE
对数值有效。您可以将数字转换为字符串。@Domenico正如我所知,在某些数据库中,您需要使用
|
而不是
+
或使用
CONCAT
函数;)
| |
是SQL标准定义的连接运算符。