Вы можете попробовать использовать операторы case для поворота таблицы, предполагая, что строки всегда идут в таком порядке:
SELECT (case when (<condition to match first octet>) then IPPARSED else END) as 1,
(case when (<condition to match second octet>) then IPPARSED else END) as 2,
(case when (<condition to match third octet>) then IPPARSED else END) as 3,
(case when (<condition to match fourth octet>) then IPPARSED else END) as 4
FROM <insert_table_name_or_table_definition_here>
Cf. Поваренная книга SQL Энтони Моллинаро pg 365.
РЕДАКТИРОВАТЬ: если у вас возникли проблемы с набором <condition to match (...) octet>
, вам нужно будет задействовать оператор select для результатов запроса, который каким-то образом добавляет числа в таблицу. В Oracle вы бы использовали столбец rownum psuedocolumn, но его нет в SQL Server. Похоже, что в SQL Server 2005 вы можете использовать встроенную функцию ROW_NUMBER()
в качестве столбца или, возможно, использовать функцию IDENTITY(...)
в качестве столбца в этом запросе.