С учетом регистра для определенного столбца

Я использую Microsoft SQL Management Studio V18. У меня есть столбец, в котором мне нужно найти, содержит ли он строчные буквы. См. ниже желаемый результат:

Материал#Material_DescContain_Lower
123ОПИСАНИЕ ТОВАРАДа
213Описание товараНет

Поскольку сопоставление по умолчанию нечувствительно к регистру, я просто хочу включить его для этого конкретного столбца.

Я пробовал следующее, однако это не сработало - оно не определяет, содержит ли row2 строчный алфавит. Что я могу сделать, чтобы определить, есть ли в столбце нижний регистр?

select

table.Material_Desc,
Case when 
table.Material_Desc collate SQL_Latin1_General_CP1_CS_AS = table.Material_Desc 
Then 'No' else 'Yes' end as Contain_Lower

from table

Вам нужно указать COLLATE столбец в сравнении с чувствительным к регистру столбцом. Если значения в столбце всегда должны быть чувствительны к регистру, вам следует добавить (PERSISTED) вычисляемый столбец или изменить сопоставление столбцов.

Larnu 16.05.2022 16:36
ReactJs | Supabase | Добавление данных в базу данных
ReactJs | Supabase | Добавление данных в базу данных
Это и есть ваш редактор таблиц в supabase.👇
Понимание Python и переход к SQL
Понимание Python и переход к SQL
Перед нами лабораторная работа по BloodOath:
2
1
47
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы на правильном пути, но вы только что перевели столбец в ВЕРХНИЙ РЕГИСТР. Также необходимо сравнить:

SELECT
material_desc,
CASE WHEN material_Desc = UPPER(material_desc) COLLATE SQL_Latin1_General_CP1_CS_AS
THEN 'No' ELSE 'Yes' END AS contain_lower
FROM table;

Другие вопросы по теме

Похожие вопросы