[英]AWS Athena json_extract query from string field returns empty values
[英]Extract values from JSON text field for use in "IN" statement SQL
在 Azure SQL 服務器。 我有以下(非功能性)查詢,它試圖使用 JSON 外鍵數組中的值來查找行,使用“IN”。
SELECT * FROM foo_table WHERE foo_table_id IN (SELECT json_ids_field FROM bar_table WHERE bar_table_id _field= 1);
但是,這會返回一個錯誤,因為它本身並不理解 json_ids_field 中的json_ids_field
格式。
Msg 245, Level 16, State 1, Line 1
Conversion failed when converting the nvarchar value '[29,56,57,71,138,145,195]' to data type int
我如何反序列化該字段,以便將其值聚合到可在 IN 子句中使用的列表中。
如評論中所述,您需要使用OPENJSON
來消費您的 JSON 並將其轉換為數據集:
SELECT *
FROM dbo.foo_table
WHERE foo_table_id IN (SELECT TRY_CONVERT(int, OJ.value)
FROM dbo.bar_table bt
CROSS APPLY OPENJSON(bt.json_ids_column) OJ
WHERE bt.bar_table_id_column = 1);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.