【发布时间】:2022-01-15 05:28:03
【问题描述】:
这些值存储为 1 列的一部分。它们实际上是通过 sql oracle 连接的 3 个 cols。如何使这些值看起来对齐为 3 个不同的列?
目前,这些数字将是 1 列的 3 个字符,第二列的 10 个字符和第三列的 7 个字符。出于某种原因,我不得不将它们放在 1 列中以在我的 rtf 模板中使用。我需要 SQL Oracle 中的解决方案来设置连接列的宽度。我在这里使用演员,但这是我得到的输出
CAST(TO_CHAR(G_WEIGHTAGE)||'%' as char(3))||' '
||CAST(TO_CHAR(G_ACHIEVE , '990.00')||'%' as char(13)) ||' '
||CAST( TO_CHAR(ROUND((G_ACHIEVE_FACTOR*(G_WEIGHTAGE/100)),2)*(TARGET_BONUS/100), '990.00')||'%' as char(8)) AS G_WAIT
这是此输出中的第一行。我也以同样的方式写过其他行。
它是这样来的
40% 96.79% 9.60%
10% 99.89% 2.70%
20% NA/ 51.42% 0.00%
10% 62.90% 0.00%
10% 112.77% 4.80%
我需要的输出:
40% 96.79% 9.60%
10% 99.89% 2.70%
20% NA/51.42% 0.00%
10% 62.90% 0.00%
10% 112.77% 4.80%
我相信这是由于不同的字符具有不同的宽度。就像 N 与 1 相比具有不同的宽度。
【问题讨论】:
-
请输入您的数据
formatted text。 -
请编辑您的问题并添加您的 SQL。文字也比图片好。我想你可能只想要
RPAD(),也许是SUBSTR()。但是一个明确的问题会给你一个明确的答案。 -
通常您会使用 lpad/rpad,但转换为
char也应该可以工作(它应该等同于rpad)。您能否发布一个完整的测试用例,以便我查看哪个步骤未按预期工作? -
我什么都试过了,但似乎是由于 Sach 字符的长度,比如 N 大,1 小,1 个空格 charcuterie 是如果不同的长度。这是像素长度,因此它看起来是倾斜的。如果我使用 0 而不是空格,那就没问题了。
-
我认为您的意思不是“Pixel”(或“charcuterie”)。您是在谈论与可变宽度字体对齐吗?