我有一张table下面的结构-表名称-员工列- ID(编号)、数据(clob)我的clob数据是这样的:{“premium1”:540,“premium2”:650,“totalpremium1”:540 }现在我想选择totalpremium等于premium 1或premium 2的所有行。有人能帮我做SQL查询吗
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
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 }|
字符串
2条答案
按热度按时间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
x6492ojm2#
您的CLOB值看起来像格式良好的JSON文档。
因此,您可以使用JSON_VALUE函数提取特定的元素值,如下所示。
字符串