Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 сместить стобцы если Null  [new]
58705870
Member

Откуда:
Сообщений: 5
Добрый день!

SELECT     report.view_Report2.child_Name, report.view_Report2.p1_Name, report.view_Report2.p2_Name, 
report.view_Report2.p3_Name, report.view_Report2.p4_Name, report.view_Report2.p5_Name, sales.tbl_dict_products.productName, 
sales.tbl_dict_brands.brandName, sales.view_sales_Grouped_by_AOGUID_clear.saleDate, sales.view_sales_Grouped_by_AOGUID_clear.quantity
FROM         report.view_Report2 INNER JOIN
sales.view_sales_Grouped_by_AOGUID_clear ON report.view_Report2.AOGUID = sales.view_sales_Grouped_by_AOGUID_clear.AOGUID LEFT OUTER JOIN
sales.tbl_dict_products LEFT OUTER JOIN
sales.tbl_dict_brands ON sales.tbl_dict_products.brandId = sales.tbl_dict_brands.brandId ON 
sales.view_sales_Grouped_by_AOGUID_clear.dictProdId = sales.tbl_dict_products.dictProdId 


Есть результат запроса такого вида
Уфа_г Башкортостан_Респ NULL NULL NULL NULL
Садовая_Большая_ул Саратовская_обл Саратов_г NULL NULL NULL
Шахтерская_ул Тульская_обл Новомосковский_р-н Новомосковск_г Сокольники мкр NULL

Как получить такой результат:

Башкортостан_Респ Уфа_г NULL NULL NULL
Саратовская_обл Саратов_г Садовая_Большая_ул NULL NULL
Тульская_обл Новомосковский_р-н Новомосковск_г Сокольники мкр Шахтерская_ул

Т.е. нужно заменить первый Null на значение. Сложность в том, что "первый" NULL может быть в любом столбце.
Спасибо!
3 июл 13, 11:30    [14515235]     Ответить | Цитировать Сообщить модератору
 Re: сместить стобцы если Null  [new]
Glory
Member

Откуда:
Сообщений: 104751
Писать для каждого столбца проверку значений в других столбцах ?
3 июл 13, 11:33    [14515261]     Ответить | Цитировать Сообщить модератору
 Re: сместить стобцы если Null  [new]
StarikNavy
Member

Откуда: Москва
Сообщений: 2415
isnull()
3 июл 13, 12:00    [14515510]     Ответить | Цитировать Сообщить модератору
 Re: сместить стобцы если Null  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Обожаю эту задачу её костыльностью в квадрате.
Т.е. человек в здравом уме уже убьёт этот высер, а не будет извращаться над извращением.

Чисто IsNull - может быть много комбинаций.
Разворот строки + Top + CASE. Или что-то похожее.
4 июл 13, 00:46    [14519768]     Ответить | Цитировать Сообщить модератору
 Re: сместить стобцы если Null  [new]
=)8)
Guest
select
   case when p1_name is null then child_name else p1_name end p1_name,
   case when p1_name+p2_name is null then child_name else p2_name end p2_name,
   case when p1_name+p2_name+p3_name is null then child_name else p3_name end p3_name,
   ...
4 июл 13, 09:32    [14520331]     Ответить | Цитировать Сообщить модератору
 Re: сместить стобцы если Null  [new]
=)8)
Guest
Не, неправильно написал...
4 июл 13, 09:35    [14520347]     Ответить | Цитировать Сообщить модератору
 Re: сместить стобцы если Null  [new]
=)8)
Guest
select
   isnull(p1_name, child_name) p1_name,
   isnull(p2_name, case when p1_name is not null then child_name end) p2_name,
   isnull(p3_name, case when p1_name+p2_name  is not null then child_name end) p3_name,
   ...
4 июл 13, 10:08    [14520493]     Ответить | Цитировать Сообщить модератору
 Re: сместить стобцы если Null  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
=)8),

Да я ступил.
Типы то сходятся или можно свести.
4 июл 13, 12:58    [14521744]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить