小编Muh*_*ker的帖子

如何将逗号分隔值转换为oracle中的行?

这是DDL -

create table tbl1 (
   id number,
   value varchar2(50)
);

insert into tbl1 values (1, 'AA, UT, BT, SK, SX');
insert into tbl1 values (2, 'AA, UT, SX');
insert into tbl1 values (3, 'UT, SK, SX, ZF');
Run Code Online (Sandbox Code Playgroud)

注意,这里的值是逗号分隔的字符串.

但是,我们需要结果如下 -

ID VALUE
-------------
1  AA
1  UT
1  BT
1  SK
1  SX
2  AA
2  UT
2  SX
3  UT
3  SK
3  SX
3  ZF
Run Code Online (Sandbox Code Playgroud)

我们如何为此编写SQL?

sql oracle

6
推荐指数
3
解决办法
4万
查看次数

根据一个月内的特定日期范围聚合多个列

我需要汇总Amounts以按每月的日期范围显示。为了说明这一点,请看下表:

发票支付

Customer_id    Invoice_no    Invoice_date    Amount
---------------------------------------------------
10             10023         2016-07-08      60
10             10018         2016-08-04      90
11             10016         2016-07-01      110
11             10021         2016-07-05      120
12             10028         2016-07-11      10
12             10038         2016-07-31      5
Run Code Online (Sandbox Code Playgroud)

您会注意到,我想根据Customer_id从开始到结束的日期对它们进行分组并显示。此外,只需每月执行此操作。

到目前为止我已经尝试过以下查询:

select Customer_id, (mindate + ' to ' + maxdate) Date_Range, Amount
from (
     select Customer_id, sum(Amount) Amount, min(Invoice_date) mindate, max(Invoice_date) maxdate  
     from Invoice_Payment
     group by Customer_id
     ) I ; 
Run Code Online (Sandbox Code Playgroud)

从上面的查询我得到的Output结果是:

Customer_id    Date_Range                    Amount
10             2016-07-08 to 2016-08-04      150
11             2016-07-01 to …
Run Code Online (Sandbox Code Playgroud)

sql oracle

5
推荐指数
1
解决办法
357
查看次数

SQL Server 2008日期参数

我将开始日期和结束日期参数传递给我的存储过程.我在这里做一个简单的测试:

DECLARE @StartDate DATE = '10/06/2013' --dd/mm/yyyy
SELECT @StartDate   -- this statement running successfully 

DECLARE @EndDate DATE = '30/06/2013'  --dd/mm/yyyy
SELECT @EndDate -- this statement giving error
Run Code Online (Sandbox Code Playgroud)

此语句返回以下错误

消息241,级别16,状态1,行2
转换在从字符串转换日期和/或时间时失败.

有谁知道出了什么问题EndDate

sql sql-server sql-server-2008

2
推荐指数
1
解决办法
115
查看次数

标签 统计

sql ×3

oracle ×2

sql-server ×1

sql-server-2008 ×1