Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何向结果数据中添加字母_Sql_Oracle - Fatal编程技术网

Sql 如何向结果数据中添加字母

Sql 如何向结果数据中添加字母,sql,oracle,Sql,Oracle,当我运行以下查询时 select NVL(week, 'SUM) week , sum(A) AS A, sum(B) AS B from ( select b.* from TABLE b where b.week between '2013051' and '2013052' ) group by ROLLUP(WEEK) 我得到的数据如下 | WEEK | 2013051 2013052 但我希望数据命名如下

当我运行以下查询时

select
 NVL(week, 'SUM) week
  , sum(A) AS A, sum(B) AS B
from
  (
  select b.* 
     from TABLE  b
    where b.week between '2013051' and '2013052'
  )
 group by ROLLUP(WEEK)
我得到的数据如下

   |  WEEK  | 

    2013051

    2013052
但我希望数据命名如下

   |  WEEK  | 

2013. 05. 1 WEEK 

2013. 05. 2 WEEK

有人能帮我解决这个问题吗?

假设
week
是一个字符串:

select substr(week, 1, 4)
    ||'. '|| substr(week, 5, 2)
    ||'. '|| substr(week, 7, 1) ||' WEEK' as week,
...
或者,如果
week
可以为空(由于子查询的筛选,它无法从数据中获得空值,但您从
汇总中得到一个生成的空值,我最初忽略了该值):


);还有一个,在这里似乎是多余的。

假设
week
是一个字符串:

select substr(week, 1, 4)
    ||'. '|| substr(week, 5, 2)
    ||'. '|| substr(week, 7, 1) ||' WEEK' as week,
...
或者,如果
week
可以为空(由于子查询的筛选,它无法从数据中获得空值,但您从
汇总中得到一个生成的空值,我最初忽略了该值):


);还有一个,在这里似乎是多余的。

如果您的Oracle RDBMS版本是10g或更高版本,则该函数还可用于自定义字符串格式:

select regexp_replace( 
         week, -- if week is of varchar2 datatype or to_char(week) if it's of number datatype
         '^([[:digit:]]{4})([[:digit:]]{2})([[:digit:]]{1})$', '\1. \2. \3  WEEK'
       )
  from your_table_name_or_subquery
结果:

WEEK    
------------------
2013. 05. 1 WEEK 
2013. 05. 2 WEEK

如果您的Oracle RDBMS版本为10g或更高版本,则该函数还可用于执行自定义字符串格式设置:

select regexp_replace( 
         week, -- if week is of varchar2 datatype or to_char(week) if it's of number datatype
         '^([[:digit:]]{4})([[:digit:]]{2})([[:digit:]]{1})$', '\1. \2. \3  WEEK'
       )
  from your_table_name_or_subquery
结果:

WEEK    
------------------
2013. 05. 1 WEEK 
2013. 05. 2 WEEK
您不需要在所有问题的标题中添加
;无论如何,你都在用[SQL]标记它们,所以这只是噪音,使标题更难阅读。你不需要在所有问题的标题中添加
;不管怎么说,你都在用[SQL]标记它们,所以这只是噪音,使标题更难阅读。