【问题标题】:Leading zero infront of row [duplicate]行前导零[重复]
【发布时间】:2018-12-21 18:16:59
【问题描述】:

我有一个名为 Week 的专栏,它是一个数字。我不想像第 1、2、3、4 周等那样显示它,而是想在前面显示 0。我在 Oracle 数据库中工作。

视图构造如下:

Select "DATO","UGEDAG","WEEK","MÅNED","ÅR","KVARTAL","MÅNEDNUMMER","MÅNEDNUMMERTAL" 
from SC_DRIFT.EXCEL_DATO_UGE 
where DATO >= '2016-01-01'

【问题讨论】:

  • 基本上和here描述的一样,但是用PL-SQL翻译了
  • 仅适用于第 1 至第 9 周,还是适用于所有周?

标签: sql oracle oracle11g


【解决方案1】:

您可以在下面尝试 - 使用 lpad() 函数

Select "DATO","UGEDAG",LPAD("WEEK", 2, '0'),"MÅNED","ÅR","KVARTAL","MÅNEDNUMMER","MÅNEDNUMMERTAL" 
from SC_DRIFT.EXCEL_DATO_UGE 
where DATO >= '2016-01-01'

【讨论】:

    【解决方案2】:

    你可以使用TO_CHAR:

    SELECT
        "DATO",
        "UGEDAG",
         SUBSTR('0' || TO_CHAR(WEEK), -2, 2) AS "WEEK",
        "MÅNED",
        "ÅR",
        "KVARTAL",
        "MÅNEDNUMMER",
        "MÅNEDNUMMERTAL" 
    FROM SC_DRIFT.EXCEL_DATO_UGE 
    WHERE DATO >= '2016-01-01';
    

    【讨论】:

    • 我想 OP 只希望第 1 周到第 9 周的前导 0。
    • @jarlh 答案已更新,感谢您的反馈。
    • 谢谢,这很有魅力。
    • 我该如何解决这个问题,正如 jarlh 所说的,只针对第 1 周到第 9 周
    • 重新加载你的页面,我修好了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-28
    • 2014-03-04
    • 2015-03-04
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多