首页 > 解决方案 > 链接表值函数参数 (SQL Server)

问题描述

我需要创建一个带有单个参数的 SQL Server TVF,然后使用该参数来构建其他所需的参数。这甚至可能吗?

该错误指出“LEFT”附近的语法不正确。下面的简单表示。

CREATE FUNCTION TESTFUNCTION
(   
    -- Add the parameters for the function here
    @PRM1 VARCHAR(2) = 'ABC',
    @PRM2 VARCHAR(1) = LEFT(@PRM1,1)
)
RETURNS TABLE 
AS
RETURN 
(
    -- Add the SELECT statement with parameter references here
    SELECT @PRM2
)
GO

谢谢你!

标签: sqlsql-server

解决方案


在问题中进行编辑之前:

您只需要一个参数:

SELECT @PRM2 = LEFT(@PRM1, 1);

但是,您需要缩放函数而不是值函数:

CREATE FUNCTION TESTFUNCTION
(   
    -- Add the parameters for the function here
    @PRM1 VARCHAR(2) = 'ABC'
)
RETURNS VARCHAR(255)
AS 
   BEGIN

    DECLARE @PRM2 VARCHAR(255)

    SET @PRM2 = LEFT(@PRM1, 1)

    RETURNS (@PRM2)

   END

注意:您@PRM1将只接受两个字符AB。所以,定义适当的长度。


推荐阅读