powered by simpleCommunicator - 2.0.58     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Помогите с SQL запросов в access 2007
9 сообщений из 9, страница 1 из 1
Помогите с SQL запросов в access 2007
    #38056319
Помогите, пожалуйста. Мне нужно реализовать поиск на нахождение номеров, в которых повторяется 3 цифры. Задал преподаватель, может быть его нельзя в access 2007 осуществить...
...
Рейтинг: 0 / 0
Помогите с SQL запросов в access 2007
    #38056331
Я много где шарилась и ничего не нашла(( помогите, пожалуйста((
...
Рейтинг: 0 / 0
Помогите с SQL запросов в access 2007
    #38056355
Хнык((((((((((((((
...
Рейтинг: 0 / 0
Помогите с SQL запросов в access 2007
    #38056554
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СТУДЕНТКА ПО,

Смотреть негде, но если некий номер в одной строке содержится, то таким методом (MSSQL только)
Можешь такой способ подредактировать под себя. В Access не помню но возможно скорее всего использовать UDF функции на VBA.. Тогда проще

Код: sql
1.
2.
3.
4.
5.
6.
SELECT CASE WHEN Replace(Phone, '0', 'xx') >= 3 THEN 'Больше трех единиц'
            WHEN Replace(Phone, '1', 'xx') >= 3 THEN 'Больше трех двоек'
            WHEN Replace(Phone, '2', 'xx') >= 3 THEN 'Больше трех троек'
	   ....
	END 
FROM Table
...
Рейтинг: 0 / 0
Помогите с SQL запросов в access 2007
    #38056556
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
немного поторопился... таким образом
Len(Replace(Phone, '0', 'xx')) - Len(Phone) >= 3
...
Рейтинг: 0 / 0
Помогите с SQL запросов в access 2007
    #38057344
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VSVLADнемного поторопился... таким образом
Len(Replace(Phone, '0', 'xx')) - Len(Phone) >= 3
опять поторопились

при реплейсе, длина поля "уменьшается" и при данном раскладе у Вас всегда будет false


ЗЫЖ или это сделано специально
...
Рейтинг: 0 / 0
Помогите с SQL запросов в access 2007
    #38057382
Фотография VSVLAD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HandKot,

Не совсем понял, почему поля уменьшается... Если я реплейсю на значение длинее предыдущего. Вот более полный пример. Т.е. 0 заменяем на 2символьную произвольную последовательность... Итого если нулей было 3, то длина строки общая увеличится на 3 символа =) как бы так. После разность - есть колво замен - оно же колво нулей в данном случае. Конечно следущие WHEN не выполняться... если будет несколько затроенных цифр, но об этом автор умолчал

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT CASE WHEN Len(Replace(Phone, '0', 'xx')) - Len(Phone) >= 3 THEN 'Больше трех 0'
            WHEN Len(Replace(Phone, '1', 'xx')) - Len(Phone) >= 3 THEN 'Больше трех 1'
            WHEN Len(Replace(Phone, '2', 'xx')) - Len(Phone) >= 3 THEN 'Больше трех 2'
       END,
	    Len(Phone) AS [Длина номера],
		Len(Replace(Phone, '0', 'xx')) [Измен 0], 
		Len(Replace(Phone, '1', 'xx')) [Измен 1],
		Len(Replace(Phone, '2', 'xx')) [Измен 2]
FROM (
	SELECT Cast('12325080607' AS VARCHAR(100)) Phone
) T
...
Рейтинг: 0 / 0
Помогите с SQL запросов в access 2007
    #38057417
Фотография HandKot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
блин, извиняюсь, не досмотрел
я обычно меняю на пустую строку и тогда длина уменьшается
извиняюсь еще раз
...
Рейтинг: 0 / 0
Помогите с SQL запросов в access 2007
    #38059112
Фотография lbppb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю есть ли в Аксе LIKE, если есть, то можно так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
SELECT
	 t.Number
	,CASE
		WHEN t.Number LIKE '%0%0%0%' THEN 'Contains three digits 0'
		WHEN t.Number LIKE '%1%1%1%' THEN 'Contains three digits 1'
		WHEN t.Number LIKE '%2%2%2%' THEN 'Contains three digits 2'
		WHEN t.Number LIKE '%3%3%3%' THEN 'Contains three digits 3'
		WHEN t.Number LIKE '%4%4%4%' THEN 'Contains three digits 4'
		WHEN t.Number LIKE '%5%5%5%' THEN 'Contains three digits 5'
		WHEN t.Number LIKE '%6%6%6%' THEN 'Contains three digits 6'
		WHEN t.Number LIKE '%7%7%7%' THEN 'Contains three digits 7'
		WHEN t.Number LIKE '%8%8%8%' THEN 'Contains three digits 8'
		WHEN t.Number LIKE '%9%9%9%' THEN 'Contains three digits 9'
		ELSE 'No numbers with 3 identical digits'
	END
FROM
	(
	SELECT '1236151485' AS Number
	) AS t
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Помогите с SQL запросов в access 2007
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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