SQL-запрос для нахождения строк со специальными символами только

Я работаю с SQL Server 2005.

Я должен узнать только те строки, для которых существует специальный символ в столбце “Body”. В следующем сценарии результатом должна быть только строка с TemplateID = 2. Как мы пишем запрос для этого?

CREATE TABLE #Template (TemplateID INT, Body VARCHAR(100))

INSERT INTO #Template (TemplateID,Body) VALUES (1,'abcd  1234')

INSERT INTO #Template (TemplateID,Body) VALUES (2,'#^!@')

Что-либо кроме следующего - специальный символ для этого сценария

1) Alphabtes

2) Digits

3) Space
9
задан Luv 23 September 2013 в 06:55
поделиться

1 ответ

SELECT
    TemplateID,
    Body
FROM
    #Template
WHERE
    Body LIKE '%[^0-9a-zA-Z ]%'

В скобках указаны числа (0-9), буквы в нижнем регистре (a-z), буквы в верхнем регистре (A-Z) и пробел. "^" Делает это "НЕ" одной из этих вещей. Обратите внимание, что это отличается от NOT LIKE '% [0-9a-zA-Z]%'

30
ответ дан 4 December 2019 в 07:22
поделиться
Другие вопросы по тегам:

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