R HAN选择某些列名的sql查询将列名作为数据帧值返回



当我从R中的HANA运行sql查询并提取所有列时,数据会正确返回。

sql <- "SELECT TOP 10 *
FROM "ccf-edw.self-service.DOIP::R_CA_B_DemandPlan"( 
'PLACEHOLDER' = ('$$IP_ExtractionWeekFrom$$', '201943'), 
'PLACEHOLDER' = ('$$IP_ExtractionWeekTo$$', '201943')) "
SpringVisitAll <- dbGetQuery(jdbcConnection, sql)

这为我提供了具有实际数据的列。

但是,如果我尝试只调用几个列,则数据只填充列名

sql <- "SELECT TOP 10 'SalesOffice', 'CalendarMonth'
FROM "ccf-edw.self-service.DOIP::R_CA_B_DemandPlan"( 
'PLACEHOLDER' = ('$$IP_ExtractionWeekFrom$$', '201943'), 
'PLACEHOLDER' = ('$$IP_ExtractionWeekTo$$', '201943')) "
SpringVisitAll <- dbGetQuery(jdbcConnection, sql)

提供两列,其中每列的内容都向下读取SalesOffice和CalendarMonth。

这是怎么回事?

基于SAP HANA 的命名惯例

名称不区分大小写。例如,CUSTOMER和CUSTOMER是相同的,但对象名称存储在SAP HANA数据库中时会转换为大写。但是,如果将名称用引号括起来,则区分大小写。

因此,根据您在CREATE TABLE语句中定义列的方式(带引号或不带引号(,您有两个引用它们的选项

未引用的列名-不区分大小写

简单地写没有分隔符的列名:

sql <- "SELECT TOP 10  SalesOffice ,  CalendarMonth  ...

双引号列名-区分大小写

列名必须用双引号括起来。此外,在双引号R字符串中,必须使用"转义双引号

sql <- "SELECT TOP 10  "SalesOffice" ,  "CalendarMonth"  ...

相关内容

  • 没有找到相关文章

最新更新