Мені потрібен запит SQL, щоб зробити всі дані у стовпці ВЕРХНІМ СПРАВОМ?
Будь-які ідеї?
Відповіді:
Якщо ви хочете оновлювати лише рядки, які на даний момент не є великими (замість усіх рядків), вам потрібно буде визначити різницю, використовуючи COLLATE
так:
UPDATE MyTable
SET MyColumn = UPPER(MyColumn)
WHERE MyColumn != UPPER(MyColumn) COLLATE Latin1_General_CS_AS
Чутливість до випадків базується на ваших налаштуваннях сортування та за замовчуванням зазвичай не враховує регістр.
Сортування можна встановити на рівні сервера, бази даних, стовпця або рівня запиту :
-- Server
SELECT SERVERPROPERTY('COLLATION')
-- Database
SELECT name, collation_name FROM sys.databases
-- Column
SELECT COLUMN_NAME, COLLATION_NAME FROM INFORMATION_SCHEMA.COLUMNS WHERE CHARACTER_SET_NAME IS NOT NULL
Імена зіставлення вказують, як слід кодувати та читати рядок, наприклад:
Latin1_General_CI_AS
→ Регістр нечутливийLatin1_General_CS_AS
→ З урахуванням регістру