我有一个JSON格式的SQL列,它看起来像data->'$.name'
,我想问一下是否可以像这样对这个列做一个Ignore Case
UPPER(data->'$.name')
。
实施例:
select * from TYPE_hugo_DATA WHERE UPPER(data->'$.name') = UPPER('hugo');
答案 0 :(得分:2)
问题是您在原始json值上创建了等号,其中包含引号("
)。
如果您想要检索没有引号的json值,您可以->>
作为JSON_UNQUOTE(JSON_EXTRACT())
的简短语法:
select * from TYPE_hugo_DATA WHERE UPPER(data->>'$.name') = UPPER('hugo');
或
select * from TYPE_hugo_DATA WHERE JSON_UNQUOTE(JSON_EXTRACT(data, '$.name')) = UPPER('hugo');