云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

域名解析_一元云服务器_限时特惠

小七 141 0

目前HANA中没有内置的pivot/unpivot函数。在这个博客中,你会发现如何在SQLScript中实现这一点的变通方法。

Pivot/Unpivot

Pivoting是从行到列的转换。

Unpivoting是从列到行的转换。

即使HANA中没有内置函数,在SQL中也有变通方法。对于pivot函数,可以使用CASE/WHEN创建新列,并筛选特定值。

pivot

首先,我们将创建一个包含三列的测试表。让我们调用TEST\u A表和PROD、DATE\u YEAR和SALES列。

将一些数据插入表中并显示值。

现在我们可以使用CASE/WHEN

透视值查询的结果是:

如果需要透视表,淘客如何推广,您不希望每次都编写此代码。因此,我们可以使用SQLScript生成代码并直接执行。如果执行此代码有困难,大数据分析,还可以使用而不是CREATE或REPLACE just CREATE。要使用SQLSCRIPT\u字符串库,需要SAP HANA Platform 2.0 SPS 03或更高版本。如果您有其他错误信息,请查看故障排除部分。

您可以使用下面列出的参数列表调用此过程:

例如,此过程可以这样调用:

Unpivot

Unpivot功能可以通过使用MAP函数和SERIES\u GENERATE\u INTEGER来实现。如上图所述,企业信息化应用,unpivot意味着从列中生成行。函数系列\u GENERATE \u INTEGER可以用来生成整数表,它可以与源表连接生成多行

我们现在创建一个包含产品和几个销售年份的表,云呢拿,称之为TEST\u B

在表中插入数据并显示

现在我们可以使用上面提到的函数生成unpivot表:

查询的结果是:

自动生成这个代码,可使用以下程序:

输入参数为:

如果您在创建程序时收到以下错误消息,云免费,不要在定义中使用READS SQL数据。

SAP DBTech JDBC:[7]:不支持的功能:当前配置中不允许使用只读动态SQL:第43行第4列(位置1358)

由于在编译时创建的表结构未知,因此不能使用表类型的输出参数。为了存储结果供以后使用,可以将以下代码添加到过程中,以将结果存储到动态生成的表中。另外,您还需要定义变量v\u new\u table\u name,它定义了要用于存储的表。请注意,不建议使用动态执行的DDL语句:

程序使用动态SQL执行生成的SELECT语句对账单有关动态SQL风险的更多信息,请参阅本页。

SQL注入安全或SQL注入预防功能有助于将风险降至最低。请注意,我们在上面的代码中没有使用此函数。

Case Expressions

Dynamic SQL

CREATE TABLE AS

内置库

系统限制

MAP函数(杂项)

SERIES\u GENERATE函数(SERIES Data)