DB2Select查询用于CLOB列比较

cotxawn7  于 10个月前  发布在  DB2
关注(0)|答案(2)|浏览(158)

我有一张table下面的结构-
表名称-员工列- ID(编号)、数据(clob)
我的clob数据是这样的:{“premium1”:540,“premium2”:650,“totalpremium1”:540 }
现在我想选择totalpremium等于premium 1或premium 2的所有行。有人能帮我做SQL查询吗

g6ll5ycj

g6ll5ycj1#

这不是为你的表配置的,但作为一个例子,它可能提供你需要的语法:
选择JSON_VALUE(jsondata,'strict $.logbook_key' RETURNING INTEGER)AS logbook_key,JSON_VALUE(jsondata,'strict $. from' RETURNING CHAR(4))AS brakes_off,JSON_VALUE(jsondata,'strict $.from' RETURNING CHAR(4))AS from_airfield from activity_data WHERE JSON_VALUE(jsondata,'strict $.from' RETURNING CHAR(4))= 'EGBT' ;;
关于Mark

x6492ojm

x6492ojm2#

您的CLOB值看起来像格式良好的JSON文档。
因此,您可以使用JSON_VALUE函数提取特定的元素值,如下所示。

WITH Employee (Id, Data) AS
(
VALUES 
  (1, '{ "premium1":540, "premium2":650, "totalpremium":540 }')
, (2, '{ "premium1":540, "premium2":650, "totalpremium":  0 }')
)
SELECT *
FROM Employee 
WHERE 
  JSON_VALUE (Data, 'strict $.totalpremium' RETURNING INT)
  IN 
  (
    JSON_VALUE (Data, 'strict $.premium1' RETURNING INT)
  , JSON_VALUE (Data, 'strict $.premium2' RETURNING INT) 
  )

|ID |DATA                                                  |
|---|------------------------------------------------------|
|1  |{ "premium1":540, "premium2":650, "totalpremium":540 }|

字符串

相关问题