Ram*_*man 7 sql t-sql sql-server
我正在创建一个函数来返回'0'或'1',具体取决于嵌套if else语句的结果.使用MSSQL.
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
Run Code Online (Sandbox Code Playgroud)
这一切都很好.有没有更好的方法来实现这一点(我尝试使用OR但SQL编辑器显示错误,而不是识别OR).
SET @condition = (case when PATINDEX('"%', @string) !=0 or
PATINDEX('%"%', @string) !=0 or
PATINDEX('%"', @string) !=0 then 1 else 0 end)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
20957 次 |
最近记录: |