我似乎无法FROM
使用RODBC的以下条款来工作sqlQuery
。我接受了@Lars Br的建议。的报价,但它仍然无法正常工作。我是
我知道占位符的作品,因为我在qlikview中使用过
所以下面的代码有效
table <- sqlQuery(myconn, 'SELECT *
FROM "_SYS_BIC"."mytable.TABLE/ALL_DATA"')
但是当我尝试添加以下内容时(我在传递日期参数)
table <- sqlQuery(myconn, 'SELECT *
FROM "_SYS_BIC"."mytable.TABLE/ALL_DATA"')
('PLACEHOLDER' = ('$$AS_OF_DATE$$',
'2017-01-09'),
'PLACEHOLDER' = ('$$ABCD_ONE$$',
'0'),
'PLACEHOLDER' = ('$$ABCD_TWO$$',
'0'),
'PLACEHOLDER' = ('$$EFGH$$',
'12345'),
'PLACEHOLDER' = ('$$FLAG$$',
'1'))')
现在我知道我的单引号弄乱了它,所以我尝试了以下内容。
在这里,您将陷入嵌套语法和多级语句处理的陷阱:
table <- sqlQuery >(< myconn, 'SELECT *
FROM "_SYS_BIC"."mytable.TABLE/ALL_DATA"'>)< ---!
('PLACEHOLDER' = ('$$AS_OF_DATE$$',
'2017-01-09'),
'PLACEHOLDER' = ('$$ABCD_ONE$$',
'0'),
'PLACEHOLDER' = ('$$ABCD_TWO$$',
'0'),
'PLACEHOLDER' = ('$$EFGH$$',
'12345'),
'PLACEHOLDER' = ('$$FLAG$$',
'1'))')
对于R,您的命令在我放置的位置结束,< ---!
其余所有内容对R都是无效的。
在这种情况下,请记住sqlQuery()函数期望第二个参数中包含 整个 SQL命令字符串,这一点很重要。这包括HANA的WITH
PARAMETER语法。
为了避免此类问题,可以先将SQL命令分配给变量,然后仅在函数调用中使用该变量。
为了使用R变量设置参数,可以使用文本替换。
# create the date parameter in the right format YYYY-MM-DD
selDate <- format(Sys.Date() , "%F")
selDate [1]“ 2017-02-04”
# create the base SQL command with %D as a placeholder for the selDate
# note how all single quotes inside the sqlCMD need to be escaped by a \
sqlCMD <- 'SELECT *
+ FROM "_SYS_BIC"."mytable.TABLE/ALL_DATA"
+ (\'PLACEHOLDER\' = (\'$$AS_OF_DATE$$\', \'%D\'),
+ \'PLACEHOLDER\' = (\'$$ABCD_ONE$$\', \'0\'),
+ \'PLACEHOLDER\' = (\'$$ABCD_TWO$$\', \'0\'),
+ \'PLACEHOLDER\' = (\'$$EFGH$$\', \'12345\'),
+ \'PLACEHOLDER\' = (\'$$FLAG$$\', \'1\'))'
sqlCMD [1]“ SELECT * \ n + FROM \” _ SYS_BIC \“。\” mytable.TABLE / ALL_DATA
\“ \ n +(’PLACEHOLDER’=(’$$ AS_OF_DATE $$’,’%D’),\ n +’ PLACEHOLDER’=(’‘$$
ABCD_ONE $$’,‘0’),\ n +’PLACEHOLDER’=(’$$ ABCD_TWO $$,‘0’),\ n
+’PLACEHOLDER’=(’$$ EFGH $$ ‘,‘12345’),\ n +’PLACEHOLDER’=(’$$ FLAG
$$’,‘1’))“
# now subsitute the %D with the selDate
sqlCMD <- gsub ("%D", selDate, sqlCMD)
sqlCMD [1]“ SELECT * \ n FROM \” _ SYS_BIC \“。\” mytable.TABLE / ALL_DATA \“
\ n(’PLACEHOLDER’=(’$$ AS_OF_DATE $$’,‘2017-02-04’), \ n’PLACEHOLDER’=(’$$
ABCD_ONE $$’,‘0’),\ n’PLACEHOLDER’=(’$$ ABCD_TWO $$’,‘0’),\
n’PLACEHOLDER’=(’$$ EFGH $$’,‘12345’),\ n’PLACEHOLDER’=(’$$ FLAG $$’,‘1’))“
# finally run the query
table <- sqlQuery(myconn, sqlCMD)
当然,所有常规建议都适用(例如 不要 使用SELECT *或在获取结果数据集之前确保正确的过滤和聚合)。
本文向大家介绍Markdown 报价单,包括了Markdown 报价单的使用技巧和注意事项,需要的朋友参考一下 示例 通过添加>一行,您可以创建带引号的文本! 我是个报价!
我能够检查我输入的单词是否是回文。但是我怎么让它检查整个句子。比如:一个人,一个计划,一只猫,一只火腿,一头牦牛,一个山药,一顶帽子,一条运河——巴拿马! 这是我的回文: 输出: 输入一个句子:一个男人,一个计划,一只猫,一个火腿,一头牦牛,一个山药,一顶帽子,一条运河! 这句话不是回文 //这不也是回文吗?这就是我想说的。我想输入一整句话。 然而,如果我只做一个词: 输入一个句子:abccba
最后,我没有看到这里的等价或延伸。Monad是一种不同的风格,在另一个故事中很有用。 抱歉我的无知。
问题内容: 如果列匹配,是否有很好的方法在SQL中表示选择特定的行,否则选择更通用的行?就像是: 我只希望它返回一个特定的记录(如果存在),否则,如果找不到特定的列匹配项,则返回通用的“ ALL”记录。看起来COALESCE与我正在寻找的相似,但我不知道在语法上如何工作。 问题答案: @Blorgbeard答案(使用前1个和排序依据)可能是最好的方法,但只是有所不同,您还可以使用子查询,但不存在:
我实际上是一个新手到Java,并试图做一个小项目。所以,在我的项目中,我想让用户输入一个句子,我想让程序在句子中搜索特定的单词,并基于此给出输出。我使用NetBeans开发我的应用程序。 我的代码是这样的 我知道这段代码没有意义,也不会运行,但我这样说是为了让人们对我试图实现的目标有一个大致的了解。 请帮帮我.
我需要使用Jackson解析器来处理包含非标准单引号而不是双引号的json。以前有人问过这个问题: 配置Jackson以反序列化单引号(无效)JSON 但是“JsonParser”类在杰克逊 2.0 中不再存在。看起来配置对象映射器的较新方法是这样的: 但我找不到ALLOW_SINGLE_QUOTES功能。也许我只是没看到。 如何在Jackson 2.x中反序列化单引号? 编辑 OOPS,没关系。