Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在Select查询中使用函数_Sql_Sql Server 2008 - Fatal编程技术网

Sql 如何在Select查询中使用函数

Sql 如何在Select查询中使用函数,sql,sql-server-2008,Sql,Sql Server 2008,我需要在select查询中使用函数。下面是我的函数和选择查询的代码 示例函数: CREATE FUNCTION GetASRPlanCurrentStatus(@ChvnPlanNo nvarchar(50)) RETURNS NVARCHAR(50) AS BEGIN Declare @ChvnStatus nvarchar(50) = NULL, @PlanStatus nvarchar(50) = 'Not yet initiated for process' SET @C

我需要在select查询中使用函数。下面是我的函数和选择查询的代码

示例函数:

CREATE FUNCTION GetASRPlanCurrentStatus(@ChvnPlanNo nvarchar(50)) RETURNS NVARCHAR(50)

AS
BEGIN

 Declare
 @ChvnStatus nvarchar(50) = NULL,
 @PlanStatus nvarchar(50) = 'Not yet initiated for process'


 SET @ChvnStatus =
                  CASE
                       WHEN (SELECT
                                 COUNT(*)
                            FROM Evaluation
                            WHERE PlanNo = @chvnPlanNo
                            AND ISNULL(IsFreezed, 0) = 1
                            AND ISNULL(SendForRecruiter, 0) = 1
                            AND ISNULL(IsPEScoreUploaded, 0) = 1
                            AND ISNULL(SentForTeamLeaderApproval, 0) = 1)
                            = (SELECT
                                 COUNT(*)
                            FROM Evaluation
                            WHERE PlanNo = @ChvnPlanNo) THEN 'Approved'
                  END
 SET @PlanStatus = ISNULL(@ChvnStatus, @PlanStatus)
 RETURN @PlanStatus

END
我的选择查询:

   SELECT 
     '0' AS ResultTag,
      GetASRPlanCurrentStatus('ASR2017 - 3') AS Overallstatus,
      6' AS ProcessOrder
上述查询不起作用。我不知道怎么了。有人指导我解决这个问题。提前谢谢

要求输出:

----------  ----------     ----------
Result Tag  Overallstatus  ProcessOrder
----------  ----------     ----------
0            Approved        6

请尝试将方案放在您的功能前面

SELECT 
 '0' AS ResultTag,
  dbo.GetASRPlanCurrentStatus('ASR2017 - 3') AS Overallstatus,
  6' AS ProcessOrder
...

使用以下查询调用SELECT子句中的函数:

 SELECT '0' AS ResultTag,'6' AS ProcessOrder,
        [dbo].[GetASRPlanCurrentStatus]('ASR2017 - 3') AS Overallstatus,
        ----------
        ----------
上述查询不起作用。??有错误信息吗?