如何对 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
;
我只想使用 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
;