oracle 中Like 后面如何用字段名进行模糊查询,而不是用字符串。

下面的SQL语句总是不成功,不知道是为什么?
SELECT *
FROM (SELECT ID,DEPARTMENTNAME,DEPARTMENTORDER,OFFICEFILE
FROM SETDEPARTMENT
WHERE OfficeFile=1) a
LEFT OUTER JOIN
(SELECT ID,BACKOFFICE,BACKTIME,CONTENT,TOOFFICE
FROM OFFICEDATA
WHERE id=6228) b

ON b.TOOFFICE LIKE '%'+a.DEPARTMENTNAME+'%'
最后一句总是提示如下错误:
执行失败:ORA-01722: 无效数字

SELECT *
FROM (SELECT ID,DEPARTMENTNAME,DEPARTMENTORDER,OFFICEFILE
FROM SETDEPARTMENT
WHERE OfficeFile=1) a
LEFT OUTER JOIN
(SELECT ID,BACKOFFICE,BACKTIME,CONTENT,TOOFFICE
FROM OFFICEDATA
WHERE id=6228) b

ON OfficeFile=1 and b.TOOFFICE LIKE '%'+a.DEPARTMENTNAME+'%'
到底是为什么呢?

1、首先双击桌面plsql developer软件启动软件,在连接窗口中填写连接信息,连接数据库。

2、连接成功后新建命令窗口,在sql查询中一般情况下对于数据比较少的表都会使用普通查询进行查询数据,如下图。

3、有的时候针对数据量比较大,而又不太确定查询目录的表在进行查询的时候,就需要进行模糊查询,使用关键字Like ,如下图查询出职工姓名第二个字符是o的职工信息。

4、种模糊查询的方式只能针对字符串类型的数据列进行查询,其它类型的数据是无法查询出结果的,如下图。

5、除了模糊查询之外还有反向模糊查询,not like,它的使用就是根据查询条件查询满足查询条件以外的数据。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-04-01
最后一个字符串拼接就错误了,SQLSERVER的字符串拼接符号才是+,而ORACLE是||
把最后一句这么改一下试试 LIKE '%'||a.DEPARTMENTNAME||'%'
第2个回答  推荐于2017-11-24
呵呵,oracle没有+ 而是 || 这个代表+
oracle的+号,只是数字相加本回答被提问者采纳