将布尔值传递给SQL SERVER中函数中的if语句 [英] Passing a boolean value to an if statement in a function in SQL SERVER

查看:76
本文介绍了将布尔值传递给SQL SERVER中函数中的if语句的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

HI全部,



我在将布尔值传递给函数中的if条件时遇到问题。



HI All,

I am facing a problem in passing the boolean value to an if condition in a function.

CREATE FUNCTION [dbo].[CAN_GetEMBULangugeName] (@LanguageName NVARCHAR(MAX), @IsAdmin BIT)
RETURNS NVARCHAR(MAX)
AS
BEGIN

 -- Declare the return variable here
 DECLARE @LanName NVARCHAR(MAX)
 DECLARE @LanguageNameLength INT
 DECLARE @RemainingPartString NVARCHAR(MAX)

 SELECT @LanguageNameLength = LEN(@LanguageName)

 IF(@IsAdmin)
     BEGIN
         IF SUBSTRING(@LanguageName, 1, 4) = 'EMBU'
             BEGIN
              SET @RemainingPartString = SUBSTRING(@LanguageName, 6, @LanguageNameLength - 5)
              SET @LanguageName = REPLACE(@LanguageName, 'EMBU ', '')
              SET @LanguageName = @RemainingPartString + ' (other countries)'
             END
     END
 ELSE
    BEGIN
         IF SUBSTRING(@LanguageName, 1, 4) = 'EMBU'
             BEGIN
              SET @LanguageName = REPLACE(@LanguageName, 'EMBU ', '')
             END
     END
 RETURN @LanguageName

END





我在IF(@IsAdmin)收到错误。



错误如下。





I am getting the error at IF(@IsAdmin).

The error are as follows.

Msg 102, Level 15, State 1, Procedure CAN_GetEMBULangugeName, Line 20
Incorrect syntax near ''TRUE''.

Msg 156, Level 15, State 1, Procedure CAN_GetEMBULangugeName, Line 29
Incorrect syntax near the keyword ''ELSE''.





请指导我。



谢谢



Please guide me.

Thanks

推荐答案

它应该是

it should be
IF(@IsAdmin = 0) --0 indicates false and 1 indicates true



快乐编码!

:)


Happy Coding!
:)


这篇关于将布尔值传递给SQL SERVER中函数中的if语句的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆