更新时间:2023-01-19 21:50:50
尝试这样的事情:
Try something like this:
IF NOT EXIST (SELECT listid FROM list WHERE @languagecode='en' AND ListName_en =@listname AND ListType=@ListType AND AccessType=@AccessType AND (CreatedBy = @EmplpyeeID OR @CreatedBy = '0' OR @AccessType = 'Global'))
BEGIN
--some other statement
END
你不需要在这种情况下使用案例陈述。您有多个正在检查的值,并且case语句将为每个case语句提供一个结果,因此不适合您的查询。
[更新]
试试这个,它会得到一些你可以在查询运行之前查看的值。
You do not need to use a case statement in this situation. You have multiple values you are checking against and a case statement will give you one result for each case statement so is not appropriate for your query.
[UPDATE]
Try this, it will get some values you can check before the query runs.
DECLARE @listNameChoice varchar(25)
SET @listNameChoice = (Case WHEN @languagecode = 'en' THEN 'ListName_en' ELSE 'ListName_DE' END)
IF NOT EXIST (SELECT listid FROM list WHERE @listNameChoice = @listname AND ListType=@ListType AND AccessType=@AccessType AND (CreatedBy = @EmplpyeeID OR @CreatedBy = '0' OR @AccessType = 'Global'))
BEGIN
--some other statement
END
IF not exist (select listid from list where
case @languagecode when 'en' then ListName_en
case @languagecode when 'DE' then ListName_DE End =@listname and ListType=@ListType and AccessType=@AccessType AND (CreatedBy = @EmplpyeeID OR @CreatedBy = '0' OR @AccessType = 'Global'))
BEGIN
--some other statement
END
>