Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Выбрать поля, в которых содержится строка, содержащая менее пяти различных букв  [new]
Debusen
Member

Откуда:
Сообщений: 186
Собственно задачка - выбрать из таблицы строки, в определенном поле которых содержится строка, содержащая менее пяти различных букв.
Как решить?
20 дек 19, 08:39    [22044904]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать поля, в которых содержится строка, содержащая менее пяти различных букв  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20207
Эмм.. посчитать количество уникальных букв в значении поля, да отобрать то, где посчитанное меньше пяти.

SELECT COUNT(DISTINCT SUBSTRING(field,number,1))
FROM master.dbo.spt_values
WHERE type='P' AND number BETWEEN 1 AND LEN(field)


Сообщение было отредактировано: 20 дек 19, 08:58
20 дек 19, 08:53    [22044916]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать поля, в которых содержится строка, содержащая менее пяти различных букв  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20207
SELECT test.txt
FROM test
CROSS APPLY ( SELECT SUBSTRING(txt,number,1) one_char
              FROM master.dbo.spt_values
              WHERE type='P' 
                AND number BETWEEN 1 AND LEN(txt) ) chars
GROUP BY test.txt
HAVING COUNT(DISTINCT chars.one_char) < 5

fiddle
20 дек 19, 09:07    [22044926]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать поля, в которых содержится строка, содержащая менее пяти различных букв  [new]
Debusen
Member

Откуда:
Сообщений: 186
Делаю запрос
SELECT Персонажи.Имя_персонажа 
INTO Newtable
FROM Персонажи
WHERE (SELECT COUNT(DISTINCT SUBSTRING(Персонажи.Имя_персонажа ,number,1))
FROM master.dbo.spt_values
WHERE type='P' AND number BETWEEN 1 AND LEN(Персонажи.Имя_персонажа ))<5

Выдает ошибку
Сообщение 8124, уровень 16, состояние 1, строка 4
В статистическом выражении, содержащем внешнюю ссылку, указано более одного столбца. Если статистическое выражение содержит внешнюю ссылку, то эта внешняя ссылка должна являться единственным столбцом, на который в выражении есть ссылка.
20 дек 19, 09:12    [22044930]     Ответить | Цитировать Сообщить модератору
 Re: Выбрать поля, в которых содержится строка, содержащая менее пяти различных букв  [new]
Debusen
Member

Откуда:
Сообщений: 186
Всё, второй код отлично работает.
Огромное спасибо!
20 дек 19, 09:15    [22044934]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить