Как найти повторяющиеся числа в столбце в SQL-сервере. Например, 11111, 33333333, 5555555555,7777777 и т. Д.

Мне нужно идентифицировать повторяющиеся числа (например, 1111, 33333333, 5555555555,777777777 и т. Д.) В столбце.

Как я могу сделать это на сервере SQL без необходимости жесткого кода каждого сценария. Максимальная длина составляет 10 столбцов. Любая помощь приветствуется.

2 ответа

Решение

Получив отличный ответ @Dave.Gugg, вот еще один способ, используя patindex() искать персонажа, отличного от первого.

select *
from some_table t
where 0 = patindex( '[^' + left(t.some_column,1) + ']' , t.some_column )

Опять же, это работает только для строковых типов (char,varchar, так далее.). Числовые типы, такие как int нужно будет сначала преобразовать.

Это проверит, имеет ли столбец все одинаковое значение.

SELECT *
FROM tablename
WHERE columnname = REPLICATE(LEFT(columnname,1),LEN(columnname))

Как отмечает Николас Кэри, если в столбце есть числа, вам нужно сначала разыграть как varchar:

SELECT *
FROM tablename
WHERE CAST(columnname AS VARCHAR(10)) = REPLICATE(LEFT(CAST(columnname AS VARCHAR(10)),1),LEN(CAST(columnname AS VARCHAR(10))))
Другие вопросы по тегам