Проблема со скалярной UDF-вставкой в ​​SQL Server 2019

Если вы имеете дело с многоиндексным фреймворком данных, вам может быть интересно извлечь только столбец одного имени мультииндекса. Вы можете сделать это как

df.index.get_level_values('name_sub_index')

, и, конечно, name_sub_index должен быть элементом FrozenList df.index.names

2
задан Martin Smith 6 March 2019 в 16:24
поделиться

1 ответ

SQL Server 2019 все еще находится в CTP, и это новая функция. Если вы нашли ошибку в ней, вы должны сообщить об этом в Microsoft, чтобы она была исправлена ​​до выпуска ( сделано для вас здесь ).

В предыдущих версиях, если вы попытаетесь вставить его вручную, вы увидите ту же ошибку (как в урезанном примере ниже). Это из-за ограничения , обсуждаемого здесь .

WITH T(m_id,fra, til) AS
(
SELECT 1, GETDATE(), GETDATE()
)
SELECT *
FROM T
CROSS APPLY
        (SELECT     
             SUM(DATEDIFF(D, e.FRADATO, til))
         FROM 
             dbo.mlr_eos_avl e 
) CA(result)

До тех пор, пока Microsoft не исправит этот встроенный случай, вы можете использовать

WITH INLINE = OFF

в определении скалярного UDF для отключения встраивания UDF

0
ответ дан Martin Smith 6 March 2019 в 16:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: