有补位的,但是没有专门补0的,你想怎么补0?
10年积累的做网站、成都网站设计经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有清水免费网站建设让你可以放心的选择与我们合作。
如果是19改为19.00那么好像数据库内部直接就可以这样保存,我记得可以设置精确到多少位,怎么设置我忘了,不过应该是可以设置的。
类似这种我只会一个操作字符串的,不是操作数字的,是lpad(左补位)和rpad(右补位)
举例:
假设原来是字段内容为aa,
语句为select lpad(字段,5,'-') from table ,那么显示的内容为---aa。
如果是rpad那么则是aa---。5就是字符串总共的长度,'-'是你要添加的字符。
--代码中1=1是用来写你的过滤条件的
--代码中的表A,写你原来的表名
SELECT T3.MONTH, T3.CUST, T3.ITEM, NVL(T4.QTY, 0)
FROM (SELECT MONTH, CUST, ITEM
FROM (SELECT TO_CHAR(201600 + ROWNUM) AS MONTH
FROM DUAL
CONNECT BY ROWNUM = 12) T1,
(SELECT CUST, ITEM FROM 表A WHERE 1 = 1 GROUP BY CUST, ITEM) T2) T3
LEFT JOIN
--T4这一段查询SQL也就是你提供的那段分组的查询,你可以自己调整
(SELECT Month, Cust, Item, SUM(QTY) AS QTY
FROM 表A
WHERE 1 = 1
GROUP BY Month, Cust, Item) T4
ON T3.MONTH = T4.MONTH
AND T3.CUST = T4.CUST
AND T3.ITEM = T4.ITEM
有问题可以追问,或者私聊
补空查询和补零查询是两个不同概念。
补空查询是将空格替换成特定字符,可用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;
结果:
oracle中有lpad,rpad函数。
lpad函数从左边对字符串使用指定的字符进行填充。从其字面意思也可以理解,l是left的简写,pad是填充的意思,所以lpad就是从左边填充的意思
语法格式如下:
lpad( string, padded_length, [ pad_string ] )
----------------------
select 'YB'||lpad('字段',6,'0') from dual
个人知道的可以用lpad来补0(左边,如果是右侧补0,那么是rpad函数),如果想要保存的时候就有0,那么保存的时候需要是字符型的,不能是数字的,因为oracle默认数字前面是没有0的,小数除外。