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

Смотреть негде, но если некий номер в одной строке содержится, то таким методом (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
28.11.2012, 15:50
    #38056556
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с SQL запросов в access 2007
немного поторопился... таким образом
Len(Replace(Phone, '0', 'xx')) - Len(Phone) >= 3
...
Рейтинг: 0 / 0
29.11.2012, 08:26
    #38057344
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с SQL запросов в access 2007
VSVLADнемного поторопился... таким образом
Len(Replace(Phone, '0', 'xx')) - Len(Phone) >= 3
опять поторопились

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


ЗЫЖ или это сделано специально
...
Рейтинг: 0 / 0
29.11.2012, 09:27
    #38057382
VSVLAD
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с SQL запросов в access 2007
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
29.11.2012, 09:55
    #38057417
HandKot
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с SQL запросов в access 2007
блин, извиняюсь, не досмотрел
я обычно меняю на пустую строку и тогда длина уменьшается
извиняюсь еще раз
...
Рейтинг: 0 / 0
30.11.2012, 01:49
    #38059112
lbppb
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Помогите с SQL запросов в access 2007
Не знаю есть ли в Аксе 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
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Помогите с SQL запросов в access 2007 / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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