在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格式。
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子句中使用的列表中。
1条答案
按热度按时间huwehgph1#
正如评论中提到的,您需要使用
OPENJSON
来使用JSON并将其转换为数据集: