Oracle 11g 合并多列为一列数据显示

dragon08 2013-06-07 07:26:08
背景:为了实现模糊查询。
思路:将原来的库表某条记录的所有列(A1,A2,A3,...)合并为一列A,这样查询的时候只要合并后的列执行where A like '%aa%',这样就能对这条记录是否含有aa进行模糊查询。

百度、google了一下,目前看到的是把一列的所有值合并在一个字段内显示,不是我想要的;我要的是针对每一条记录的各个列的值进行合并。

想法是用视图实现,但现在首先用select语句不知道怎么合并,求大神打救!!!!!!!!!!

如库表:
A1 A2 A3---------列名
a1 a2 a3---------第一条记录
b1 b2 b3---------第二条记录

合并后
A----------------列名
a1,a2,a3---------第一条记录
b1,b2,b3---------第二条记录
...全文
2222 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
看要看表的用法 里面字段在sql中的过滤关系 具体大到多少数据 ?

--创建视图
create view view_date
as
SELECT A1||'-'||A2||'-'||A3 a
from DATA-TABLE

--建立索引 语法
create index idx_date on DATA-TABLE(A1)
xiongwenhua365 2013-06-07
  • 打赏
  • 举报
回复
SQL> select * from test;

A1    A2    A3
----- ----- -----
a1    a2    a3
b2    b3    b4

SQL> select a1 || ',' || a2 || ',' || a3 as a from test;

A
-----------------
a1,a2,a3
b2,b3,b4
dragon08 2013-06-07
  • 打赏
  • 举报
回复
SELECT A1||'-'||A2||'-'||A3 from DATA-TABLE 刚发完贴,就发现上面的方法可以实现了。 那就继续问一下大家,怎么通过视图把一张表的所有字段合并为一个字段(用上面的方法应该可以),然后执行查询的时候只对这个视图执行模糊查询就好了。 之前还有个想法就是通过lucene来实现,不过lucene还没用过,就想先通过视图来实现了。 当数据量很大的时候,要考虑什么的?怎么建索引???

17,075

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧