|
|
|
Борьба с денормализацией
|
|||
|---|---|---|---|
|
#18+
Дано: 1. Сервер Microsoft SQL Server 2005 - 9.00.3257.00 (Intel X86) Jun 12 2008 18:38:26 Copyright (c) 1988-2005 Microsoft Corporation Standard Edition on Windows NT 5.2 (Build 3790: Service Pack 2) 2. Таблица Create table #Tab1 (id int, DocNum) 3. Данные Insert in #Tab1 values (1, '0008952-82,84-96,97-99,9000-02') Insert in #Tab1 values (2, '0009493-502,0010283-91,93-95') Insert in #Tab1 values (3, '0013564-70,72,74,96,99,600-13') Задача: Если приглядется, то можно заметить, что в поле DocNum собраны в виде перечислений и дипазонов сразу множество номеров, имеющих одинаковую длину и одинаковую начальную часть номера. Например, в записи с Id=1 в поле DocNum находятся номера с 0008952 по 0008982, с 0008984 по 0008996, с 0008997 по 0008999, с 0009000 по 0009002. Диапазоны не могут пересекаться. Какие возможны варианты превращения этого бардака в нормальную таблицу с отдельными записями для каждого номера? Модератор: Тема перенесена из форума "Microsoft SQL Server". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.02.2009, 20:28 |
|
||
|
Борьба с денормализацией
|
|||
|---|---|---|---|
|
#18+
Тема к проектированию отношения не имеет и потому прошу вернуть ее в MS SQL. Это всего лишь задача класса ETL на очистку и нормализацию данных, предназначенных для заливки в рабочую базу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2009, 09:30 |
|
||
|
Борьба с денормализацией
|
|||
|---|---|---|---|
|
#18+
проходящий.Какие возможны варианты превращения этого бардака в нормальную таблицу с отдельными записями для каждого номера?Ну какие... Распарсить и вставить как отдельные записи. Можно циклом, можно попытаться одним запросом, даже. Но одним запросом - это скорее из любви к искуству. Не очень сложная задача, скажем прямо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2009, 10:59 |
|
||
|
Борьба с денормализацией
|
|||
|---|---|---|---|
|
#18+
BelyНу какие... Распарсить и вставить как отдельные записи.Ну, эт понятно. Можно цикломТривиальщина, неинтересно., можно попытаться одним запросом, даже. Вот это уже интереснее! :)Но одним запросом - это скорее из любви к искуству. Да, есть такая слабость. :) Не очень сложная задача, скажем прямо. Но вот решения могут быть разными! :) ps: тему я таки опять поднял в форуме по MS SQL. Обсуждение лучше продолжить там, а этот топик прикрыть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2009, 11:05 |
|
||
|
|

start [/forum/topic.php?fid=32&gotonew=1&tid=1543408]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
171ms |
get topic data: |
12ms |
get first new msg: |
6ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 237ms |
| total: | 520ms |

| 0 / 0 |
