powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проверка записи на наличие в ней только одинаковых символов, актуально
11 сообщений из 11, страница 1 из 1
Проверка записи на наличие в ней только одинаковых символов, актуально
    #40126935
mshkfrde
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброго времени суток, столкнулся с проблемой в реализации данного условия:
Нужно удалить номера лошадей из таблицы "Скачки", в записи которых все цифры являются одинаковыми.
К примеру, 444, 6666 и т.д.
Как бы это реализовать?
Заранее всем спасибо.
...
Рейтинг: 0 / 0
Проверка записи на наличие в ней только одинаковых символов, актуально
    #40126939
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первое, что пришло в голову:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DELETE [Скачки]
WHERE
   Field LIKE '%00%' AND Field NOT LIKE '%[^0]%'
OR Field LIKE '%11%' AND Field NOT LIKE '%[^1]%'
OR Field LIKE '%22%' AND Field NOT LIKE '%[^2]%'
OR Field LIKE '%33%' AND Field NOT LIKE '%[^3]%'
OR Field LIKE '%44%' AND Field NOT LIKE '%[^4]%'
OR Field LIKE '%55%' AND Field NOT LIKE '%[^5]%'
OR Field LIKE '%66%' AND Field NOT LIKE '%[^6]%'
OR Field LIKE '%77%' AND Field NOT LIKE '%[^7]%'
OR Field LIKE '%88%' AND Field NOT LIKE '%[^8]%'
OR Field LIKE '%99%' AND Field NOT LIKE '%[^9]%';

Я предположил, что Field - строковое поле. Если нет, то можно его преобразовать в строковое.
...
Рейтинг: 0 / 0
Проверка записи на наличие в ней только одинаковых символов, актуально
    #40126942
mshkfrde
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iap, большое спасибо, все заработало!
...
Рейтинг: 0 / 0
Проверка записи на наличие в ней только одинаковых символов, актуально
    #40127017
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iap
Первое, что пришло в голову:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DELETE [Скачки]
WHERE
   Field LIKE '%00%' AND Field NOT LIKE '%[^0]%'
OR Field LIKE '%11%' AND Field NOT LIKE '%[^1]%'
OR Field LIKE '%22%' AND Field NOT LIKE '%[^2]%'
OR Field LIKE '%33%' AND Field NOT LIKE '%[^3]%'
OR Field LIKE '%44%' AND Field NOT LIKE '%[^4]%'
OR Field LIKE '%55%' AND Field NOT LIKE '%[^5]%'
OR Field LIKE '%66%' AND Field NOT LIKE '%[^6]%'
OR Field LIKE '%77%' AND Field NOT LIKE '%[^7]%'
OR Field LIKE '%88%' AND Field NOT LIKE '%[^8]%'
OR Field LIKE '%99%' AND Field NOT LIKE '%[^9]%';

Я предположил, что Field - строковое поле. Если нет, то можно его преобразовать в строковое.


Бред.
Таких номеров 10 шт * (максимальное кол-во цифр в номере).
Дешевле их в табличку занести... и фсе.
...
Рейтинг: 0 / 0
Проверка записи на наличие в ней только одинаковых символов, актуально
    #40127022
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
iap
Первое, что пришло в голову:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DELETE [Скачки]
WHERE
   Field LIKE '%00%' AND Field NOT LIKE '%[^0]%'
OR Field LIKE '%11%' AND Field NOT LIKE '%[^1]%'
OR Field LIKE '%22%' AND Field NOT LIKE '%[^2]%'
OR Field LIKE '%33%' AND Field NOT LIKE '%[^3]%'
OR Field LIKE '%44%' AND Field NOT LIKE '%[^4]%'
OR Field LIKE '%55%' AND Field NOT LIKE '%[^5]%'
OR Field LIKE '%66%' AND Field NOT LIKE '%[^6]%'
OR Field LIKE '%77%' AND Field NOT LIKE '%[^7]%'
OR Field LIKE '%88%' AND Field NOT LIKE '%[^8]%'
OR Field LIKE '%99%' AND Field NOT LIKE '%[^9]%';


Я предположил, что Field - строковое поле. Если нет, то можно его преобразовать в строковое.


Бред.
Таких номеров 10 шт * (максимальное кол-во цифр в номере).
Дешевле их в табличку занести... и фсе.
Привет, Алекс!
В своём стиле, да? Ну, что поделать,- что пришло мне в голову первым, то и написал. Кто мешает предложить своё?
...
Рейтинг: 0 / 0
Проверка записи на наличие в ней только одинаковых символов, актуально
    #40127097
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mshkfrde,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
declare @a table (f1 varchar(100));
insert @a (f1) values 
('11111111'),
('2222222'),
('444'),
('11131151'),
('7777');

delete @a
where f1 in 
(
	replicate('0', len(f1)),
	replicate('1', len(f1)),
	replicate('2', len(f1)),
	replicate('3', len(f1)),
	replicate('4', len(f1)),
	replicate('5', len(f1)),
	replicate('6', len(f1)),
	replicate('7', len(f1)),
	replicate('8', len(f1)),
	replicate('9', len(f1))
)

select * from @a;
...
Рейтинг: 0 / 0
Проверка записи на наличие в ней только одинаковых символов, актуально
    #40127100
PizzaPizza
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владислав Колосов
mshkfrde,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
declare @a table (f1 varchar(100));
insert @a (f1) values 
('11111111'),
('2222222'),
('444'),
('11131151'),
('7777');

delete @a
where f1 in 
(
	replicate('0', len(f1)),
	replicate('1', len(f1)),
	replicate('2', len(f1)),
	replicate('3', len(f1)),
	replicate('4', len(f1)),
	replicate('5', len(f1)),
	replicate('6', len(f1)),
	replicate('7', len(f1)),
	replicate('8', len(f1)),
	replicate('9', len(f1))
)

select * from @a;



where f1 = replicate(left(f1,1), len(f1)) не?
...
Рейтинг: 0 / 0
Проверка записи на наличие в ней только одинаковых символов, актуально
    #40127122
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PizzaPizza
Владислав Колосов
mshkfrde,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
declare @a table (f1 varchar(100));
insert @a (f1) values 
('11111111'),
('2222222'),
('444'),
('11131151'),
('7777');

delete @a
where f1 in 
(
	replicate('0', len(f1)),
	replicate('1', len(f1)),
	replicate('2', len(f1)),
	replicate('3', len(f1)),
	replicate('4', len(f1)),
	replicate('5', len(f1)),
	replicate('6', len(f1)),
	replicate('7', len(f1)),
	replicate('8', len(f1)),
	replicate('9', len(f1))
)

select * from @a;



where f1 = replicate(left(f1,1), len(f1)) не?


Код: sql
1.
2.
3.
4.
5.
where replace(f1, left(f1,1), '') = ''

where f1 not like '%[^' + left(f1,1) + ']%'

-- и еще мильен дурацких конструкций...
...
Рейтинг: 0 / 0
Проверка записи на наличие в ней только одинаковых символов, актуально
    #40127186
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iap
Первое, что пришло в голову:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DELETE [Скачки]
WHERE
   Field LIKE '%00%' AND Field NOT LIKE '%[^0]%'
OR Field LIKE '%11%' AND Field NOT LIKE '%[^1]%'
OR Field LIKE '%22%' AND Field NOT LIKE '%[^2]%'
OR Field LIKE '%33%' AND Field NOT LIKE '%[^3]%'
OR Field LIKE '%44%' AND Field NOT LIKE '%[^4]%'
OR Field LIKE '%55%' AND Field NOT LIKE '%[^5]%'
OR Field LIKE '%66%' AND Field NOT LIKE '%[^6]%'
OR Field LIKE '%77%' AND Field NOT LIKE '%[^7]%'
OR Field LIKE '%88%' AND Field NOT LIKE '%[^8]%'
OR Field LIKE '%99%' AND Field NOT LIKE '%[^9]%';

Я предположил, что Field - строковое поле. Если нет, то можно его преобразовать в строковое.

Несаргабельно.
И потом, читаем внимательно: ВСЕ цифры являются одинаковыми.
Так что:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DELETE [Скачки]
WHERE
   Field LIKE '00%' AND Field NOT LIKE '0%[^0]%'
OR Field LIKE '11%' AND Field NOT LIKE '1%[^1]%'
OR Field LIKE '22%' AND Field NOT LIKE '2%[^2]%'
OR Field LIKE '33%' AND Field NOT LIKE '3%[^3]%'
OR Field LIKE '44%' AND Field NOT LIKE '4%[^4]%'
OR Field LIKE '55%' AND Field NOT LIKE '5%[^5]%'
OR Field LIKE '66%' AND Field NOT LIKE '6%[^6]%'
OR Field LIKE '77%' AND Field NOT LIKE '7%[^7]%'
OR Field LIKE '88%' AND Field NOT LIKE '8%[^8]%'
OR Field LIKE '99%' AND Field NOT LIKE '9%[^9]%';


Имхо, лучший вариант :-)
...
Рейтинг: 0 / 0
Проверка записи на наличие в ней только одинаковых символов, актуально
    #40127188
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И я б еще скобки расставил (Field LIKE '00%' AND Field NOT LIKE '0%[^0]%')
... а то меня передергивает без явного указания приоритета в логических конструкциях, да и любых вообще.
Родовая травма от С.
...
Рейтинг: 0 / 0
Проверка записи на наличие в ней только одинаковых символов, актуально
    #40127189
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uaggster
iap
Первое, что пришло в голову:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DELETE [Скачки]
WHERE
   Field LIKE '%00%' AND Field NOT LIKE '%[^0]%'
OR Field LIKE '%11%' AND Field NOT LIKE '%[^1]%'
OR Field LIKE '%22%' AND Field NOT LIKE '%[^2]%'
OR Field LIKE '%33%' AND Field NOT LIKE '%[^3]%'
OR Field LIKE '%44%' AND Field NOT LIKE '%[^4]%'
OR Field LIKE '%55%' AND Field NOT LIKE '%[^5]%'
OR Field LIKE '%66%' AND Field NOT LIKE '%[^6]%'
OR Field LIKE '%77%' AND Field NOT LIKE '%[^7]%'
OR Field LIKE '%88%' AND Field NOT LIKE '%[^8]%'
OR Field LIKE '%99%' AND Field NOT LIKE '%[^9]%';

Я предположил, что Field - строковое поле. Если нет, то можно его преобразовать в строковое.

Несаргабельно.
И потом, читаем внимательно: ВСЕ цифры являются одинаковыми.
Так что:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
DELETE [Скачки]
WHERE
   Field LIKE '00%' AND Field NOT LIKE '0%[^0]%'
OR Field LIKE '11%' AND Field NOT LIKE '1%[^1]%'
OR Field LIKE '22%' AND Field NOT LIKE '2%[^2]%'
OR Field LIKE '33%' AND Field NOT LIKE '3%[^3]%'
OR Field LIKE '44%' AND Field NOT LIKE '4%[^4]%'
OR Field LIKE '55%' AND Field NOT LIKE '5%[^5]%'
OR Field LIKE '66%' AND Field NOT LIKE '6%[^6]%'
OR Field LIKE '77%' AND Field NOT LIKE '7%[^7]%'
OR Field LIKE '88%' AND Field NOT LIKE '8%[^8]%'
OR Field LIKE '99%' AND Field NOT LIKE '9%[^9]%';


Имхо, лучший вариант :-)


Лучший вариант - тупая табличка из 10 строк

Код: sql
1.
2.
3.
4.
5.
declare @t table (n as varchar(10) primary key);
insert @t values('777777777');
....
WHERE
   exists( select * from @t where n like  Field + '%');



А ишо лучше - чуть менее тупая табличка из немного большего числа строк
Код: sql
1.
2.
3.
4.
5.
declare @t table (n as varchar(10) primary key);
insert @t values('77'), values('777'), ... values('7777777777') ;
....
WHERE
   exists( select * from @t where n = Field );
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Проверка записи на наличие в ней только одинаковых символов, актуально
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]