Return 来自内联值 table 的常量 table

Return a constant table from Inline-valued table

是否可以从 IVT return 一个常量 table?现在我使用的是常规 table,函数只是 return 从这个 table 中获取数据并进行一些额外的操作。

所以我想return一个table

Value
-----
0,265433
0,0629412
0,671626

我试过这样的事情:

ALTER FUNCTION [dbo].[GetEigenvector] 
(   

)
RETURNS TABLE 
AS
RETURN 
(
    SELECT Value = (SELECT 0,265433 UNION ALL
                    SELECT 0,0629412 UNION ALL
                    SELECT 0,671626)
)

但它抛出一个错误:

Only one expression can be specified in the select list when the subquery is not introduced with EXISTS.

您弄乱了为您的列指定别名的语法:

ALTER FUNCTION [dbo].[GetEigenvector] 
(   

)
RETURNS TABLE 
AS
RETURN 
(
   SELECT 0.265433 AS Value
   UNION ALL
   SELECT 0.0629412 
   UNION ALL
   SELECT 0.671626
)

另一种语法:

alter function [dbo].[GetEigenvector]()
  returns table as return
  select * from
    ( values (0.265433), (0.0629412), (0.671626) )
    as Eigenvector( Value );