嵌套if else语句
问题描述:
我正在创建一个函数,根据嵌套的if else语句的结果返回'0'或'1'。使用MSSQL。嵌套if else语句
ALTER FUNCTION udf_check_names_starting_with_quotationmark
(@string NVARCHAR(100))
RETURNS INT
AS
BEGIN
DECLARE @condition INT
SET @string = LTRIM(@string)
SET @string = RTRIM(@string)
IF (PATINDEX('"%', @string) !=0)
BEGIN
SET @condition = 1
END
ELSE IF (PATINDEX('%"%', @string) !=0)
BEGIN
SET @condition=1
END
ELSE IF (PATINDEX('%"', @string) !=0)
BEGIN
SET @condition = 1
END
ELSE
BEGIN
SET @condition=0
END
RETURN @condition
END
一切工作正常与此。有没有更好的方法来实现这一目标(我曾尝试使用OR,但SQL编辑器显示错误,无法识别OR)。
答
SET @condition = (case when PATINDEX('"%', @string) !=0 or
PATINDEX('%"%', @string) !=0 or
PATINDEX('%"', @string) !=0 then 1 else 0 end)
答
当然这可以简化为:
IF (PATINDEX('%"%', @string) !=0)
BEGIN
SET @condition=1
END
ELSE
BEGIN
SET @condition=0
END
- 因为PATINDEX('%"%', @string)
将是> 0,其中任一或PATINDEX('"%', @string)
PATINDEX( '%'“,@string)是> 0
+0
谢谢你的帮助.. – 2013-04-09 11:58:49
谢谢?你这么多的帮助..我正在玩Case,但无法得到它的工作,我的坏..谢谢.. – 2013-04-09 11:31:14