Найдите столбцы, которые начинаются со строчных букв в базе данных SQL Server, и перечислите их как оператор SELECT

#sql #sql-server #ssms #sql-server-2019

#sql #sql-сервер #ssms #sql-server-2019

Вопрос:

Я пытаюсь выбрать все столбцы в базе данных , которые начинались со строчных букв . Например, «статус».

Я написал команду, как показано ниже :

 SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE LEFT(COLUMN_NAME, 1) = 's'
 

Я получил первую букву и проверил, равна ли ОНА строчной букве «s». Но он возвращает все имена столбцов с буквами «s» и «S».
я даже попробовал это сделать :

 SELECT * FROM INFORMATION_SCHEMA.COLUMNS WHERE LEFT(COLUMN_NAME, 1) = LOWER('s')
 

Но это тоже похоже на предыдущее .

«S» — это , например. мне это нужно для всех писем .

Спасибо….

Ответ №1:

Я думаю, что имена в information_schema таблицах не чувствительны к регистру. Таким образом, ваша попытка не просто найдет нижний регистр.

Это оставляет вам два варианта. Один из них — возиться с сопоставлениями, чтобы получить эквивалентное сопоставление с учетом регистра.

Другой способ — использовать ascii() функцию:

 select *
from information_schema.columns
where ascii(left(column_name, 1)) between ascii('a') and ascii('z');
 

Вот db<>fiddle, иллюстрирующий разницу.