JSON database field queries

I’ve been experimenting with a query to get all orders with an order tag from a certain order tag group included (and show all its tags), and this is as far as I got:

SELECT O.Id, O.ExtraTopping1
FROM
(
SELECT ID,
STUFF(STUFF(OrderTags, 1, CHARINDEX(‘extra toppings’, OrderTags) + LEN(‘extra toppings’) + 7, ‘’), CHARINDEX(‘"’,STUFF(OrderTags, 1, CHARINDEX(‘extra toppings’, OrderTags) + LEN(‘extra toppings’) + 7, ‘’)), LEN(STUFF(OrderTags, 1, CHARINDEX(‘extra toppings’, OrderTags) + LEN(‘extra toppings’) + 7, ‘’)),‘’) AS ExtraTopping1,
OrderTags as Ot
FROM
Orders
) AS O
WHERE O.ExtraTopping1 is not null

This gives me:

The problem with this is that you can have an unlimited number of order tags for each order tag group, so this kind of query could never be complete…

That’s why I don’t see how you can implement it with custom report tags, unless you either change the database structure or there’s a better way to do this kind of query?