如何对 CTE 创建的数据使用 Table 值函数

How to use Table Valued Function against CTE created Data

我只想使用 Table Valued Function 并根据简单 CTE 建立的数据对其进行测试,但是我无法弄清楚如何获得 Table Valued 'see' CTE 的功能。我在这里错过了什么?

/* The below shows that I can SELECT the CSVField from my CTE CSVData */
WITH CSVData AS
(
    SELECT 'a,b,f,hello,yup' as CSVField
)
SELECT CSVField FROM CSVData
;


/* This Works and produces a table of the CSV Values */
SELECT * FROM dbo.Split('a,b,f,hello,yup', ',')


/* Does NOT Work: The below for whatever reason the TVF can't see the CTE as if it's not in Scope or for some other reason */
WITH CSVData AS
(
    SELECT 'a,b,f,hello,yup' as CSVField
)
SELECT c.* FROM dbo.Split(CSVData.CSVField, ',') c
;

Table Output Example

你可以这样写

    WITH CSVData AS
    (
        SELECT 'a,b,f,helloWorld,YesSir' as CSVField
    )
    SELECT c.*
    FROM dbo.Split( (SELECT CSVField FROM CSVData) , ',') c
    ;