在Oracle数据库版本11g中,我想创建或替换具有以下特征的视图BADGES:
(1)视图将包含两列:EMP_ID(NUMBER(9),BADGE_NO(NUMBER(13))。
(2)视图将从表Public_View的以下列中获取数据:EMP_ID(NUMBER(9)),BLDG_CD(NUMBER(4)),OFFSET_ID(NUMBER(10))。
(3)在视图中,BADGE_NO是BLDG_CD和OFFSET_ID的串联。
(4)现在我遇到问题的部分:当OFFSET_ID< 1000000(小于1百万),我想左边的填充OFFSET_ID为0(零),总共7个字符。当OFFSET_ID> = 1000000(等于或大于1百万)时,我想将填充OFFSET_ID设为0(零),总共8个字符。
答案 0 :(得分:0)
您可以在偏移ID的长度减去7, SIGN(长度(OFFSET_ID)-7)
的长度上对符号值设置条件SELECT DECODE(SIGN(length(OFFSET_ID)-7), -1, LPAD(OFFSET_ID, 7, '0'), LPAD(OFFSET_ID, 8, '0'))
FROM your_table;
如果需要,您也可以使用CASE语句(例如CASE SIGN(长度(OFFSET_ID)-7))