如何在 DB2 concat 函数中使用名为关键字的列
How to use a column named as keyword in a DB2 concat function
所以我得到了这个 table FOO,它有一个类型为 VARCHAR 的列,名为 COMMENT(恰好是一个保留关键字)。
当我试图在 select 的 CONCAT 函数中使用它时,结果为 NULL。
我该如何解决这个问题?
SELECT
CONCAT(CONCAT(CONCAT(CONCAT('{"NAME":"', NAME), '","COMMENT":"'), COMMENT),'"}')
FROM
SOMESCHEMA.FOO
我也尝试在 COMMENT
周围使用 " 或 ',但随后它被解释为 VARCHAR...
第 2 次我使用了 ` 但这恰好打印出以下错误。
- [代码:-104,SQL 状态:42601] 非法符号“`”。一些可能合法的符号是:.
我还尝试在列前面添加 SCHEMA 和 TABLE 名称,例如:
CONCAT(CONCAT(CONCAT(CONCAT('{"NAME":"', NAME), '","COMMENT":"'), SOMESCHEMA.FOO.COMMENT),'"}')
但运气不好。
你试过吗?
SELECT CONCAT(CONCAT(CONCAT(CONCAT('{"NAME":"', NAME
), '","COMMENT":"'
), "COMMENT"
),
'"}')
FROM SOMESCHEMA.FOO
也就是说,仅在列名称周围加上双引号。
我会发现使用中缀运算符更容易阅读:
SELECT '{"NAME":"' CONCAT NAME CONCAT '","COMMENT":"' CONCAT "COMMENT" CONCAT '"}'
FROM SOMESCHEMA.FOO
或:
SELECT '{"NAME":"' || NAME || '","COMMENT":"' || "COMMENT" || '"}'
FROM SOMESCHEMA.FOO
DB2 似乎也接受 ANSI/ISO SQL ||
连接:
SELECT
'{"NAME":"' || NAME || '","COMMENT":"' || COMMENT || '"}'
FROM
SOMESCHEMA.FOO
所以我得到了这个 table FOO,它有一个类型为 VARCHAR 的列,名为 COMMENT(恰好是一个保留关键字)。 当我试图在 select 的 CONCAT 函数中使用它时,结果为 NULL。
我该如何解决这个问题?
SELECT
CONCAT(CONCAT(CONCAT(CONCAT('{"NAME":"', NAME), '","COMMENT":"'), COMMENT),'"}')
FROM
SOMESCHEMA.FOO
我也尝试在 COMMENT
周围使用 " 或 ',但随后它被解释为 VARCHAR...
第 2 次我使用了 ` 但这恰好打印出以下错误。
- [代码:-104,SQL 状态:42601] 非法符号“`”。一些可能合法的符号是:.
我还尝试在列前面添加 SCHEMA 和 TABLE 名称,例如:
CONCAT(CONCAT(CONCAT(CONCAT('{"NAME":"', NAME), '","COMMENT":"'), SOMESCHEMA.FOO.COMMENT),'"}')
但运气不好。
你试过吗?
SELECT CONCAT(CONCAT(CONCAT(CONCAT('{"NAME":"', NAME
), '","COMMENT":"'
), "COMMENT"
),
'"}')
FROM SOMESCHEMA.FOO
也就是说,仅在列名称周围加上双引号。
我会发现使用中缀运算符更容易阅读:
SELECT '{"NAME":"' CONCAT NAME CONCAT '","COMMENT":"' CONCAT "COMMENT" CONCAT '"}'
FROM SOMESCHEMA.FOO
或:
SELECT '{"NAME":"' || NAME || '","COMMENT":"' || "COMMENT" || '"}'
FROM SOMESCHEMA.FOO
DB2 似乎也接受 ANSI/ISO SQL ||
连接:
SELECT
'{"NAME":"' || NAME || '","COMMENT":"' || COMMENT || '"}'
FROM
SOMESCHEMA.FOO