gpt4 book ai didi

sql-server - sql if语句检查空参数

转载 作者:行者123 更新时间:2023-12-02 21:44:04 25 4
gpt4 key购买 nike

我正在尝试传递一个参数,如果该参数为空,我想将县 ID 设置为其自身。如果县ID不为空,那么我想带回县协作中所有县的记录。

我收到一个不正确的语法错误。关于如何做到这一点有什么想法吗?

    DECLARE @pCountyId as int;

select p.Id, p.LastName, p.FirstName, c.Id, c.Description
FROM Participant as p
INNER JOIN Application as a on p.Id = a.ParticipantId
INNER JOIN Dictionary.Counties as c on a.CountyId = c.Id
WHERE

If @pCountyId is null
BEGIN
c.Id = c.Id
END
ELSE
c.Id in (SELECT cc.CountyId
FROM CountyCollaboration as cc
WHERE cc.CollaborationId = (SELECT cc1.CollaborationId
FROM CountyCollaboration as cc1
WHERE cc1.CountyId = @pCountyId))

最佳答案

尝试:

WHERE 

(@pCountyId is null) OR

c.Id in (SELECT cc.CountyId
FROM CountyCollaboration as cc
WHERE cc.CollaborationId = (SELECT cc1.CollaborationId
FROM CountyCollaboration as cc1
WHERE cc1.CountyId = @pCountyId))

但是请重新考虑一下你的条件,子查询太多了。

关于sql-server - sql if语句检查空参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19846636/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com