oracle中拼接查询语句

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle中拼接查询语句相关的知识,希望对你有一定的参考价值。

参考技术A 因为'x'||to_char(sysdate,'dd')=‘xxxx’这个条件不满足,所以查询不到数据。
'x'||to_char(sysdate,'dd')明显不等于'xxxx',能查询到数据就是怪事了。
如果你想查询到数据,必须保证'x'||to_char(sysdate,'dd')的值等于'xxxx'
就拿今天来说'x'||to_char(sysdate,'dd')的值肯定是x24。
'xxxx'的值是为xxxx,不等于x24。肯定查询不到数据。
你这个语句就跟
select
name
from
a
where
1>2这个语句的效果一样。
如果你的xxxx表示你表中的一个字段,比如x1,x2..x31,
如:
select
name
from
a
where
'x'||to_char(sysdate,'dd')=x24;
你做关联的是用你的字段名,但是判断取值的是时候,却是取的x24这一列里面的值。
如果x24这一列里面有一列的值是x24,肯定查得出数据,如果没有,肯定就查不出来,
你先确实有没得x24这条数据记录了来。。

将oracle 查询结果列拼接为字符串

参考技术A 需要用wm_concat函数来实现。
如目前在emp表中查询数据如下:
要按照deptno相同的将ename以字符串形式合并,可用如下语句:
select deptno,wm_concat(ename) from emp group by deptno;查询结果:
参考技术B create
table
test
(id
int,
name
varchar(10)
)
insert
into
test
values
(1,'a')
insert
into
test
values
(1,'b')
insert
into
test
values
(1,'c')
insert
into
test
values
(2,'a')
insert
into
test
values
(2,'b')
insert
into
test
values
(3,'a')
insert
into
test
values
(3,'c')
select
id,sys_connect_by_path(name,',')
from
(
select
id,name,
row_number()
over(partition
by
id
order
by
name)rn,
count(*)
over(partition
by
id
)
cnt
from
test
)
a
where
level=cnt
start
with
rn=1
connect
by
prior
id=id
and
prior
rn=rn-1
测试后
可用。
一楼的回答其实最容易理解了。你把它修改成动态sql
就可以了。可以不受限制了。

以上是关于oracle中拼接查询语句的主要内容,如果未能解决你的问题,请参考以下文章

oracle中decode函数如何提升查询语句性能的?

oracle存储过程中执行查询sql语句报错

oracle SELECT语句太长的问题

1、sql查询语句时怎么把几个字段拼接成一个字段?这几个字段是整型的。

将oracle 查询结果列拼接为字符串

sql 语句,查询条件,两个字段拼接和一个串比较怎从实现呢?sql 语句怎么写!谢谢!