Как вернуть строки с символами без символов ASCII с помощью SQL Server?
Если вы можете показать, как это сделать для одного столбца, было бы здорово.Найти символы, отличные от ASCII, в столбцах varchar с использованием SQL Server
я делаю что-то вроде этого сейчас, но это не работает
select *
from Staging.APARMRE1 as ar
where ar.Line like '%[^!-~ ]%'
Для дополнительного кредита, если она может охватывать все varchar
столбцов в таблице, это было бы выдающимся! В этом решении было бы неплохо вернуть три столбца:
- Поле идентификации для этой записи. (Это позволит все записи, которые будут рассмотрены с другим запросом.)
- Имя столбца
- текст с недопустимого символа
Id | FieldName | InvalidText |
----+-----------+-------------------+
25 | LastName | Solís |
56 | FirstName | François |
100 | Address1 | 123 Ümlaut street |
недопустимые символы были бы любой вне диапазона ПРОСТРАНСТВА (32) через ~
(127)
Интересный подход KM. Для моего собственного любопытства ... могу ли я спросить, почему нужна строка «OPTION (MAXRECURSION 1000)» в конце вашего заявления и что он будет делать в этом случае? – Twelfth
«OPTION (MAXRECURSION 1000)» необходим для CTE, который рекурсивно строит набор строк от 1 до 1000, значение по умолчанию равно 100 (я думаю), любые вложенные вызовы рекурсии в cte, превышающие значение по умолчанию, требуют, чтобы эта опция быть установленным. Если у вас есть таблица номеров http://stackoverflow.com/q/1393951/65223, вам не понадобится CTE или эта строка «OPTION (MAXRECURSION 1000)» –