【问题标题】:Joining tables with LIKE (SQL)使用 LIKE (SQL) 连接表
【发布时间】:2011-07-10 15:23:54
【问题描述】:

首先我使用的是 Oracle:

表一名称 = tableone

表二名称 = tabletwo

tableone 有一个名为 pizzaone 的列,tabletwo 有一个名为 pizzatwo 的列。我想加入tableonetabletwo,其中pizzaonepizzatwo 的名称中。

我尝试了什么:

选择 *
来自 tableone
   在 tableone.pizzaone 上加入 tabletwo 就像 ('%' + tabletwo.pizzatwo + '%')

如何更正此查询?

【问题讨论】:

  • 正确的方式是什么?您是否收到错误消息,或者是否存在性能问题,诸如此类?
  • ORA-01722: 无效号码 01722. 00000 - “无效号码” *原因:*操作:
  • 可能是说明您正在使用的 SQL 引擎的想法。我假设的最后一个错误代码中的 Oracle。
  • ORA 错误表示 Oracle 数据库。
  • 你能发布你的两个表定义吗?

标签: sql oracle ora-01722


【解决方案1】:

试试这个语法:

select * 
from tableone 
   join tabletwo on tableone.pizzaone like ('%' || tabletwo.pizzatwo || '%')

Oracle 的字符串连接运算符是双竖线 (||)。无效数字错误是因为 Oracle 要求 '+' 运算符使用数字操作数。

【讨论】:

  • 双管道是 ANSI 以及 SQL 字符串连接。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-31
  • 2012-09-28
  • 1970-01-01
  • 2022-01-20
相关资源
最近更新 更多