Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
qwertyqwer Member Откуда: Сообщений: 5 |
Есть динамический запрос такого рода:SET @query = 'select * into #m from (select [class],[name], [num] from #t ) as T Pivot(sum([num]) for [name] in (' + @c + ')) as PVT' SET @query = @query + ' SELECT * FROM #m' В переменной @c содержится список столбцов Результат запроса: Class А B C D 0.00005-0.00100 NULL 1 NULL NULL 0.00100-0.00500 1 NULL NULL NULL 0.01000-0.50000 NULL 1 1 NULL 10.00000-50.00000 NULL 2 NULL 1 Теперь нужно значения NULL заменить нулями и пронумеровать строки. В связи с этим вопрос: можно ли вытащить из динамического запроса таблицу #m? или как применить ISNULL, ROW_NUMBER в динамическом запросе к таблице #m? таблице #m состоит из столбца Class и столбцов, имена которых хранятся в переменной @c |
14 сен 15, 09:37 [18145322] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
|
||||
14 сен 15, 10:16 [18145397] Ответить | Цитировать Сообщить модератору |
qwertyqwer Member Откуда: Сообщений: 5 |
О, спасибо огромное, заработало :) |
||||||
14 сен 15, 11:33 [18145776] Ответить | Цитировать Сообщить модератору |
Макбет Member Откуда: Сообщений: 72 |
Не совсем верно вытащить нельзя, зато можно создать вручную и в динамическом запросе записать в нее данные CREATE TABLE #RESULT(A int null, B int null, C int null, D int null) SET @query = 'INSERT INTO #RESULT(A, B, C, D) select isnull(A,0) A, isnull(B,0) B, isnull(C,0) C, isnull(D,0) D from ...' exec (@query) select * from #RESULT |
||||
14 сен 15, 11:51 [18145895] Ответить | Цитировать Сообщить модератору |
invm Member Откуда: Москва Сообщений: 9646 |
|
||
14 сен 15, 12:02 [18145969] Ответить | Цитировать Сообщить модератору |
Макбет Member Откуда: Сообщений: 72 |
invm, согласен, проглядел |
14 сен 15, 13:42 [18146611] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |