问题描述
嗨,克里斯,
我需要达到一些值时,比如25,.50,.75 ,然后我需要显示/,//,///的顺序。
第一列单元格将始终是一些字符值,如列1 ,然后下一个单元格将显示数字。
所以,如果有值10.25 ,那么结果应该是10/。
在'。'(点)之后的值将被修复,例如25、50、75。
'。'值将更改之前。
CREATE TABLE列
(
OL1 NVARCHAR2(30) ,
OL2 NVARCHAR2(30) ,
OL3 NVARCHAR2(30) ,
OL4 NVARCHAR2(30) ,
OL5 NVARCHAR2(30) ,
OL6 NVARCHAR2(30) ,
OL7 NVARCHAR2(30)
);
/
插入列
(COL1,COL2,COL3,COL4,COL5 ,
COL6、COL7)
值
('列1','列2','列3','列4') ,
'COLUMN5', 'COLUMN6', 'COLUMN7');
/
插入列
(COL1,COL2,COL3,COL4,COL5 ,
COL6、COL7)
值
('2.25','x','99.50','x',
'x', 'x', '2.50');
/
插入列
(COL1,COL2,COL3,COL4,COL5 ,
COL6、COL7)
值
('5.25','10.75','10','20',
'5', '10', '25');
我需要达到一些值时,比如25,.50,.75 ,然后我需要显示/,//,///的顺序。
第一列单元格将始终是一些字符值,如列1 ,然后下一个单元格将显示数字。
所以,如果有值10.25 ,那么结果应该是10/。
在'。'(点)之后的值将被修复,例如25、50、75。
'。'值将更改之前。
CREATE TABLE列
(
OL1 NVARCHAR2(30) ,
OL2 NVARCHAR2(30) ,
OL3 NVARCHAR2(30) ,
OL4 NVARCHAR2(30) ,
OL5 NVARCHAR2(30) ,
OL6 NVARCHAR2(30) ,
OL7 NVARCHAR2(30)
);
/
插入列
(COL1,COL2,COL3,COL4,COL5 ,
COL6、COL7)
值
('列1','列2','列3','列4') ,
'COLUMN5', 'COLUMN6', 'COLUMN7');
/
插入列
(COL1,COL2,COL3,COL4,COL5 ,
COL6、COL7)
值
('2.25','x','99.50','x',
'x', 'x', '2.50');
/
插入列
(COL1,COL2,COL3,COL4,COL5 ,
COL6、COL7)
值
('5.25','10.75','10','20',
'5', '10', '25');
专家解答
感谢您提供测试用例。我觉得有点困惑!
要生成尾随斜杠,需要计算小数点后25的倍数。您可以通过从数字本身减去其截尾来实现这一点。然后使用此值填充适当的斜线数。
例如:
将此公式插入执行此显示所需的列。如果有些可以包含“x”,则需要使用大小写/解码来管理这些。
要生成尾随斜杠,需要计算小数点后25的倍数。您可以通过从数字本身减去其截尾来实现这一点。然后使用此值填充适当的斜线数。
例如:
select v,
(v - trunc(v)) / 0.25 multiple,
rpad('.', ((v - trunc(v)) / 0.25) + 1, '/') slashes,
trunc(v) || substr(rpad('.', ((v - trunc(v)) / 0.25) + 1, '/'), 2) fm
from (
select 1 + (rownum*.25) v from dual
connect by level <= 5
);
V MULTIPLE SLASHES FM
---------- ---------- ---------- ----------
1.25 1 ./ 1/
1.5 2 .// 1//
1.75 3 ./// 1///
2 0 . 2
2.25 1 ./ 2/将此公式插入执行此显示所需的列。如果有些可以包含“x”,则需要使用大小写/解码来管理这些。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




