SQL嵌套大小写-快捷方式逻辑?
我正试图摆脱所有的动态SQL代码。这个存储过程似乎需要一些带有WHERE子句的嵌套CASE语句。这是预期的工作。然而,我担心的表现。嵌套的GuarantorNumber是否不在select中。。。如果父案例语句不正确,是否执行语句SQL嵌套大小写-快捷方式逻辑?,sql,logic,case,shortcut,Sql,Logic,Case,Shortcut,我正试图摆脱所有的动态SQL代码。这个存储过程似乎需要一些带有WHERE子句的嵌套CASE语句。这是预期的工作。然而,我担心的表现。嵌套的GuarantorNumber是否不在select中。。。如果父案例语句不正确,是否执行语句 WHERE 1 = CASE WHEN ( @method='ADDED_RECORDS' ) THEN CASE WHEN ( pt.[GuarantorNumber] not in (select cpg.GuarantorNumbe
WHERE 1 = CASE WHEN ( @method='ADDED_RECORDS' ) THEN
CASE WHEN
( pt.[GuarantorNumber] not in (select cpg.GuarantorNumber from [CorepointProtectedGuarantor] cpg) ) THEN
1
ELSE 0 END -- NEW_RECORDS
WHEN ( @method='DELETED_RECORDS' ) THEN
CASE WHEN
( pt.[GuarantorNumber] not in (select mpg.GuarantorNumber from [MeditechProtectedGuarantor] mpg) ) THEN
1
ELSE 0 END -- DELETED_RECORDS
WHEN ( @method='UPDATED_RECORDS' ) THEN
CASE WHEN
( pt.[GuarantorNumber] in
(SELECT mpg.GuarantorNumber FROM
[MeditechProtectedGuarantor] mpg,
[CorepointProtectedGuarantor] cpg
WHERE
mpg.GuarantorNumber = cpg.GuarantorNumber and
(mpg.[LastName] <> cpg.[LastName] OR
mpg.[FirstName] <> cpg.[FirstName] OR
mpg.[MiddleName] <> cpg.[MiddleName] OR
mpg.[Address] <> cpg.[Address] OR
mpg.[AddressLine2] <> cpg.[AddressLine2] OR
mpg.[City] <> cpg.[City] OR
mpg.[State] <> cpg.[State] OR
mpg.[ZIP] <> cpg.[ZIP] OR
mpg.[Phone] <> cpg.[Phone])
) -- end of SELECT clause
) -- end of WHEN clause
THEN
1
ELSE 0 END -- UPDATED_RECORDS
搜索的大小写表达式: 返回计算结果为TRUE的第一个输入表达式的结果表达式。
在您的情况下,如果@method='ADDED_RECORDS'和@method='DELETED_RECORDS'为false,则将执行下一条语句WHEN@method='UPDATED_RECORDS'在SQLServer2008中,通过按Cntl+L来分析此行为。您使用的是什么数据库系统?
Declare @query nvarchar(max)
Declare @selectoneCount int
Declare @Temp int
SET @Temp =1
Declare @val nvarchar(max)
SET @val =''
select
@query = case @Temp
when 1
then
case @val
when 'NULL'
then
('Select Diameter from BallsProbes where Remark =2')
else
('Select Diameter from BallsProbes where Remark =3')
END
when 2
then ('Select Diameter from BallsProbes where Remark =6')
end
EXEC(@query)