Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: sql запрос  (Прочитано 11144 раз)
0 Пользователей и 1 Гость смотрят эту тему.
stas1976
Гость
« : 11-01-2006 09:08 » 

Имеются логи в sql 2000
в столбце source (varchar(32)) данные вида 192.168.0.1:1111 (т.е длина разная у них )
а мне надо просуммировать по ip т.е. до двоеточия т.е. substring не подходит из-за переменной длины адреса как мне быть подскажите пожалуйста
Записан
PooH
Глобальный модератор

ru
Offline Offline
Пол: Мужской
... и можно без хлеба!


« Ответ #1 : 11-01-2006 09:52 » 

база данных то какая? и что значит просуммировать?
можно, например, так

SELECT substr(v_ip,0,instr(v_ip,':')-1) FROM dual;

останется "чистый" ip-шник.
« Последнее редактирование: 17-12-2007 17:02 от Алексей1153++ » Записан

Удачного всем кодинга! -=x[PooH]x=-
stas1976
Гость
« Ответ #2 : 11-01-2006 10:57 » 

база данных на ms sql server 2000  а логи туда ms isa 2004 складывает
там стандартная таблица firewallLog  наз-ся
Записан
stas1976
Гость
« Ответ #3 : 11-01-2006 11:03 » 

sql query analyzer  говорит мне 
'instr' is not a recognized function name
« Последнее редактирование: 17-12-2007 17:07 от Алексей1153++ » Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 11-01-2006 11:23 » 

изучай матчасть

instr - это из оракла

Есть такая кнопочка F1
тебе нужны функции работы со строками
« Последнее редактирование: 11-01-2006 11:25 от Sla » Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Alex437
Гость
« Ответ #5 : 11-01-2006 14:25 » 

sql query analyzer  говорит мне 
'instr' is not a recognized function name
В ms sql аналог называется PATINDEX
« Последнее редактирование: 17-12-2007 17:09 от Алексей1153++ » Записан
stas1976
Гость
« Ответ #6 : 12-01-2006 07:31 » 

C sql я встречаюсь третий раз в жизни
1 раз что-то в институте учили (давно и неправда)
2 раз когда я его установил и настроил ISA server  складывать в него логи (зачем я это сделал не знаю)
3 раз когда стало надо подбить статистику по логам. при помощи волшебной кнопки F1  мне удалось написать запрос и он даже работает Улыбаюсь а про  PATINDEX я не видел ничего вчера в хелпе
так что спасибо, thanx, regards и т.п. Alex437
Записан
Dimka
Деятель
Команда клуба

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 14-01-2006 14:41 » 

Да есть в MSSQL2K функция типа PosStr, но как точно называется, не помню. Неужели BOL не открыть? Там есть специальный раздел "функции работы со строками", где все функции перечислены.
Записан

Программировать - значит понимать (К. Нюгард)
Невывернутое лучше, чем вправленное (М. Аврелий)
Многие готовы скорее умереть, чем подумать (Б. Рассел)
Igore
Гость
« Ответ #8 : 29-03-2006 20:36 » 

Наверное уже не актуально, но MS SQL можно и через substrbng и черех left... Может еще как - сходу не придумаю.
Вот это можно запустить в QA:

declare @string varchar (32)
set @string = '192.168.0.1:1111'
select SUBSTRING(@string,1, CHARINDEX(':',@string)-1)
select LEFT(@string, CHARINDEX(':',@string)-1)

и то и другое приводит к одинаковому результату...
Немного кузяво, но...
« Последнее редактирование: 17-12-2007 17:09 от Алексей1153++ » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines