Нечувствительная к регистру ЗАМЕНА () в SQL Server 2000

A.B.C.D

  • А: 0, когда бета, 1, когда сначала выпускают, больше тогда 1 почти на всей перезаписи.
  • B: Новые возможности добавили
  • C: Исправления ошибок сделаны
  • количество пересмотра репозитория управления версиями
6
задан Kev 23 September 2009 в 20:41
поделиться

2 ответа

Используйте сортировку без учета регистра:

SELECT field as "before", REPLACE(field COLLATE SQL_Latin1_General_Cp1_CI_AI
, 'OVER', '') as "after"

См. COLLATE для списка имен параметров сортировки, чтобы вы могли выбрать то, которое подходит для ваших данных.

Обновить

Хорошо , поэтому я пропустил ваш фактический запрос (изменить регистр ввода, не искать регистр без учета). Правильное решение ... не изменять ввод, а использовать адекватную сортировку для ваших данных. Если данные должны отображаться в определенном формате, используйте параметры отображения в клиенте, например. CSS преобразование текста: верхний регистр , не в сервере SELECT.

Нет никакой встроенной функции SQL для выполнения этого преобразования на месте, но тривиально построить функцию CLR , которая использует RegEx . (На SQL 2005, а не на SQL 2000 ... мне нужно еще кофе).

10
ответ дан 10 December 2019 в 00:41
поделиться

Я не знаком с SQL Server, но, возможно, он позволяет вам использовать регулярные выражения. Обычно они предлагают режим без учета регистра (устанавливается с помощью i-flag).

В противном случае вы можете использовать верхний регистр перед вызовом замены, например

SELECT field as "before", REPLACE(UPPER(field), 'OVER', '') as "after"
0
ответ дан 10 December 2019 в 00:41
поделиться
Другие вопросы по тегам:

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