Как в Cosmos Scope/SQL сравнить страну столбца со списком значений без учета регистра.
SELECT * FROM student WHERE student_name IN ("aLpHa", "BetA", "GamMa")
Как в Cosmos Scope/SQL сравнить страну столбца со списком значений без учета регистра.
SELECT * FROM student WHERE student_name IN ("aLpHa", "BetA", "GamMa")
Следующий запрос должен работать в космосдб
select * from json j where LOWER(j.student_name) IN ("alpha", "beta", "gamma")
У вас может быть UDF
как Что ж,
удф:
function convertLower(str){
return str .toLowerCase();
}
и использовать его как
SELECT * FROM c where udf.lowerConvert(c.student_name) IN ("alpha", "beta", "gamma")
lower()
неэффективен, так как в конечном итоге он сканирует весь раздел (или всю коллекцию, если вы включите запрос между разделами), поскольку он полностью обходит любую индексацию.
- person David Makogon; 27.04.2019
Вы можете использовать lower()
:
SELECT * FROM student WHERE lower(student_name) IN ("alpha", "beta", "gamma")
Или, как вариант, пользователь upper()
соответственно.
ilike
для сравнения (это то же самое, что и like
, только без учета регистра): SELECT * FROM student WHERE student_name ilike "alpha"
- person Nir Alfasi; 27.04.2019
lower()
приводит к сканированию раздела (или коллекции), поскольку он не может использовать индексы для искомых свойств. Подробнее в ответе на вопрос, который я связал как дубликат.
- person David Makogon; 27.04.2019
student_name
. - person Gordon Linoff   schedule 26.04.2019