#sql #sql_server
Есть база данных Teams. Состоящая из country, capital и teamName. Нужно отобразить те страны в порядке убывания, у которых в названиях столиц ровно две буквы в диапазоне от "а" до "д". Проверку на вхождение букв из диапазона понятно как сделать, а вот как узнать что этих букв именно 2? SELECT country, capital FROM Teams WHERE capital like '%[а-д]%' ORDER BY country DESC
Ответы
Ответ 1
С точностью до диалекта SQL: SELECT country, capital FROM Teams WHERE capital LIKE '%[а-д]%[а-д]%' AND capital NOT LIKE '%[а-д]%[а-д]%[а-д]%' ORDER BY country DESCОтвет 2
Начиная с SQL Server 2017 можно использовать функцию TRANSLATE: SELECT country, capital FROM Teams WHERE len(replace(translate(capital, N'абвгд', '~~~~~'), '~', '')) = len(capital) - 2 ORDER BY country DESC
Комментариев нет:
Отправить комментарий