SQL, где значения столбцов прописными буквами

#sql #postgresql #knex.js

Вопрос:

Допустим, в моей базе данных есть следующие записи:

ID Имя
12 Неизвестный Джон
13 Мэри Энн
13 маленький Джо
14 Неизвестный Джон

В моей программе у меня есть строковая переменная, которая всегда пишется с заглавной буквы, например:

myCapString = "JOHN DOE"

Есть ли способ получить строки в таблице с помощью столбца » ГДЕ «в столбце» имя » с заглавными буквами и последующим сопоставлением myCapString ?

В этом случае запрос вернет две записи, одну с идентификатором=12 и одну с идентификатором=14

Решение состоит в том, чтобы НЕ изменять фактические значения в таблице.

Комментарии:

1. Не знаю, почему таблица деформирована. Это выглядит правильно в режиме редактирования.

2. Используйте параметры сортировки без учета регистра.

Ответ №1:

Общим решением в Postgres было бы заглавное значение Name столбца, а затем выполнить сравнение со строковым литералом со всеми заглавными буквами, например

 SELECT * FROM yourTable WHERE UPPER(Name) = 'JOHN DOE';  

Если вам нужно реализовать это Knex, вам нужно будет выяснить, как писать столбец в верхнем регистре. Для этого может потребоваться использование необработанного запроса.