加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

如果还有一个Sql Server功能

发布时间:2020-12-12 16:45:58 所属栏目:MsSql教程 来源:网络整理
导读:我有这个我正在创建的功能.当我解析它,它工作正常,但实际上创建数据库中的功能,它说我的列名无效.这是不正确的,我拼写正确.这是代码: ALTER FUNCTION [dbo].[fnTally] (@SchoolId nvarchar(50))RETURNS intAS BEGIN DECLARE @Final nvarcharIF EXISTS ( SELE
我有这个我正在创建的功能.当我解析它,它工作正常,但实际上创建数据库中的功能,它说我的列名无效.这是不正确的,我拼写正确.这是代码:
ALTER FUNCTION [dbo].[fnTally] (@SchoolId nvarchar(50))
RETURNS int

AS 

BEGIN 

DECLARE @Final nvarchar
IF EXISTS (

    SELECT 
        question,yes_ans,no_ans,na_ans,blank_ans 
    FROM dbo.qrc_maintally 
    WHERE school_id = @SchoolId 

)

    IF yes_ans > no_ans AND yes_ans > na_ans 
    BEGIN
        SET @Final = 'Yes'
    END

    ELSE IF no_ans > yes_ans AND no_ans > na_ans 
    BEGIN
        SET @Final = 'No'
    END

    ELSE IF na_ans > yes_ans AND na_ans > no_ans 
    BEGIN
        SET @Final = 'N/A'
    END

RETURN @Final

END

解决方法

您将需要为这些列创建局部变量,在选择期间分配它们,并将其用于条件测试.
declare @yes_ans int,@no_ans int,@na_ans int

SELECT @yes_ans = yes_ans,@no_ans = no_ans,@na_ans = na_ans 
    from dbo.qrc_maintally 
    where school_id = @SchoolId

If @yes_ans > @no_ans and @yes_ans > @na_ans 
begin
Set @Final = 'Yes'
end
-- etc.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读