在sql语句里怎么右补空格

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在sql语句里怎么右补空格相关的知识,希望对你有一定的参考价值。

示例:

右补空格,字符长度定为10

declare @str varchar(1000)
set @str=\'123\'
select left(@str+\'          \',10)
参考技术A select rpad('aaa',5,' ') from dual;
--5表示将查询结果补齐为5位,' '标识用空格补齐, 同样还有lpad为左补齐

本回答被提问者采纳
参考技术B 问题很不清楚

Oracle 补空查询/补零查询

假设查询1月1号至1月10号的数据,但是数据库里,没有5号和7号数据,但是我希望查询出来后,5号和7号也显示出来,但数据为零就行了,各位大神知道该怎么查询吗。

补空查询和补零查询是两个不同概念。

补空查询是将空格替换成特定字符,可用replace函数。

如test表中有如下数据:

现在要将str字段内的空格替换成s,可用如下语句:

select replace(str,\' \',\'s\') from test;

结果:


补零查询分为两类,一类是左补0,一类是右补0。左补0用lpad,右补零用rpad。

test表中数据如下:

现在要求将str字段左补0,将其长度保持在10位。可用以下语句:

select lpad(str,10,\'0\') from test;

结果:

现在要将str字段右补0,将其长度保持在10位。可用以下语句:

select rpad(str,10,\'0\') from test;

结果:

参考技术A 按日期做中间表 假设为 temp1,然后和前张表左连接查询 select * from temp2,temp1 where temp2.日期(+) = temp1.日期 参考技术B 按日期建个中间表吧,对应缺省值为0,查询结果做UPDATE。 参考技术C 楼上说的对,提供你一个插入日期的函数方法
定义两个变量 start_dt,end_dt
while start_dt<=end_dt LOOP
v_sql := 'insert into t_date(static_date) values ('''||start_dt||''')';
execute v_sql;
start_dt := start_dt+1;
END LOOP;

后面就查询了
select * from 表,t_date d where 表.日期=d.static_date(+)本回答被提问者和网友采纳

以上是关于在sql语句里怎么右补空格的主要内容,如果未能解决你的问题,请参考以下文章

MYSQL语句中有空格如何解决?

ThinkPHP里怎么直接执行一句SQL语句

怎么解决这个问题?是啥问题 sql语句在PL/SQL里运行没问题啊

sql语句中条件查询里in、like、及=三个的效率怎么样?

在SQL语句里怎么转换数据类型?

oracle 里SQL语句UNION怎么用