我不明白。
在 R 中,通过调用
odbc::dbGetQuery(con, query)
: 对 Oracle 运行这样的查询
SELECT
em_id,
status,
CASE
WHEN bl_id IS NOT NULL AND fl_id IS NOT NULL
THEN CONCAT(bl_id, fl_id)
ELSE NULL
END AS location
FROM em;
会回来:
Error: nanodbc/nanodbc.cpp:1752: HY000:
[Oracle][ODBC][Ora]ORA-00933: SQL command not properly ended
另一方面,几乎相同的:
SELECT
em_id,
CASE
WHEN bl_id IS NOT NULL AND fl_id IS NOT NULL
THEN CONCAT(bl_id, fl_id)
ELSE NULL
END,
status
FROM em;
会成功吗!?
第一次请求失败的原因是什么?
CASE
块就在FROM
之前,和AS location
)只有当前面两个条件都为假时,查询才会成功...
请注意,both 查询都针对 SQL Server 数据库正确运行...
我该怎么做才能使这些正确的查询在两个数据库上都无错误地运行?