powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Борьба с денормализацией
4 сообщений из 4, страница 1 из 1
Борьба с денормализацией
    #35840561
Дано:
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".
...
Рейтинг: 0 / 0
Борьба с денормализацией
    #35841176
Тема к проектированию отношения не имеет и потому прошу вернуть ее в MS SQL. Это всего лишь задача класса ETL на очистку и нормализацию данных, предназначенных для заливки в рабочую базу.
...
Рейтинг: 0 / 0
Борьба с денормализацией
    #35841401
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проходящий.Какие возможны варианты превращения этого бардака в нормальную таблицу с отдельными записями для каждого номера?Ну какие...
Распарсить и вставить как отдельные записи.
Можно циклом, можно попытаться одним запросом, даже. Но одним запросом - это скорее из любви к искуству.
Не очень сложная задача, скажем прямо.
...
Рейтинг: 0 / 0
Борьба с денормализацией
    #35841420
BelyНу какие...
Распарсить и вставить как отдельные записи.Ну, эт понятно.
Можно цикломТривиальщина, неинтересно., можно попытаться одним запросом, даже. Вот это уже интереснее! :)Но одним запросом - это скорее из любви к искуству.
Да, есть такая слабость. :)
Не очень сложная задача, скажем прямо.
Но вот решения могут быть разными! :)

ps: тему я таки опять поднял в форуме по MS SQL. Обсуждение лучше продолжить там, а этот топик прикрыть.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Борьба с денормализацией
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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