Rambler's Top100
Форум: MS ACCESSVBVBA MS OfficeMS SQL server
Новые сообщения: 0000

Форум: 

Обновить визитку
Участники «Online»
Все участники

 
 

Доброго времени суток, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: а вот задачка :)
 
 автор: Силblч   (17.10.2009 в 14:25)   личное сообщение
 
 

как вот такую структуру
1.11.4.432

при помощи sql-запроса превратить в
001.011.004.432

функции не SQl - не использовать :)

вы подумайте, пожалуйста, а я пока женульку по делам отвезу

  Ответить  
 
 автор: Lukas   (17.10.2009 в 16:14)   личное сообщение
 
 

1. Вариант

SELECT "00"+Left(St,2)+"0"+Mid(St,3,3)+"00"+Mid(St,6) AS StNew FROM t1

2. Вариант

SELECT 
    InStr(St,".") AS p1, 
    InStr(Mid(St,p1+1),".")+p1 AS p2, 
    InStr(Mid(St,p2+1),".")+p2 AS p3, 
    Left(St,p1) AS S1, 
    Mid(St,p1+1,p2-p1) AS S2, 
    Mid(St,p2+1,p3-p2) AS S3, 
    Mid(St,p3+1) AS S4, 
    String(4-Len(S1),"0") & S1 & 
    String(4-Len(S2),"0") & S2 & 
    String(4-Len(S3),"0") & S3 & 
    String(3-Len(S4),"0") & S4 AS StNew
FROM t1
WHERE Not St Is Null

ps. Соли добавлять по вкусу.

  Ответить  
 
 автор: Силblч   (17.10.2009 в 17:20)   личное сообщение
 
 

извини :) не уточнил - неограниченное, в принципе, уровней вложенности....
ну.... скажем не больше 16 ти :)

  Ответить  
 
 автор: Lukas   (17.10.2009 в 17:58)   личное сообщение
 
 

Это уже не соль, а жгучий красный перец.
Если правильно понял, имеем цепочки звеньев (1-3 знака), разделенных точкой:
*
*.*
*.*.*
*.*.*.*
....
До 16 звеньев.
Задача - добить каждое звено спереди нулями до 3 знаков в итоге.
Так что-ли?

  Ответить  
 
 автор: Гоблин   (17.10.2009 в 18:41)   личное сообщение
 
 

Вопрос к Lukas
А как если по этой хрене пробежать типа рекордсетом, после каждой точки отсчитывать количество знаков и если <3 то добивать до 3 нулями спереди. И так от начала до конца строки.

Я бы написал, но не представляю как это делать.

Или еще круче. Разбить по точкам на массив и в каждом звене <3 знаков добивть нули. Потом сложить все звенья массива разбивая его точками.
Просьба не смеяться громко.

  Ответить  
 
 автор: час   (17.10.2009 в 18:45)   личное сообщение
 
 

А нуна просто функцию иметь слегка......
или в sql_ях к функциям доступа нема???

  Ответить  
 
 автор: Силblч   (17.10.2009 в 18:46)   личное сообщение
 
 

та есь :) функций я уже сделал :) вот бы без пользовательской функции :)

  Ответить  
 
 автор: Силblч   (17.10.2009 в 18:45)   личное сообщение
 
 

нада скульзапросом...

  Ответить  
 
 автор: Силblч   (17.10.2009 в 18:44)   личное сообщение
 
 

да :)

  Ответить  
 
 автор: час   (17.10.2009 в 18:58)   личное сообщение
 
 

тада в нём(в запросе) нуна FORMAT_а применить

FORMAT (xxxx, "000") или это тормозить будет жутко???

  Ответить  
 
 автор: Силblч   (17.10.2009 в 19:53)   личное сообщение
 
 

  Ответить  
 
 автор: Lukas   (17.10.2009 в 19:57)   личное сообщение
6 Кб.
 
 

  Ответить  
 
 автор: час   (17.10.2009 в 20:24)   личное сообщение
 
 

Блиииииииин - видимо жуткие тормоза.... ......

  Ответить  
 
 автор: Explorer   (17.10.2009 в 21:54)   личное сообщение
 
 

я сначала прочитал "функции SQL не использовать"
и набросал, усмехаясь, на VBA пяток вариантов

со сплитами инстрингами реплейсами и массивами :))) дурак, блин :)))

чей Скуль - какая среда исполнения запросов?

  Ответить  
 
 автор: Силblч   (18.10.2009 в 12:08)   личное сообщение
 
 

мускуль :)
да, вобщем, то я нашел выход из положения :)
но подумалось, что моим уважаемым друзьям будет интересно порешать такую задачку
такие примерно задачки на sql-ex.ru

  Ответить  
 
 автор: Дядя Федор   (27.10.2009 в 11:14)   личное сообщение
 
 

Вижу с артикулами работаешь

  Ответить  
 
 автор: Силblч   (27.10.2009 в 13:58)   личное сообщение
 
 

и с нимитоже

  Ответить  
HiProg.com - Технологии программирования
Rambler's Top100 TopList