sql if语句检查空参数

2023-12-28

我正在尝试传递一个参数,如果该参数为空,我想将县 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))

Try:

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))

但请重新考虑一下你的情况,子查询太多了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

sql if语句检查空参数 的相关文章

随机推荐

  • iOS8 + XCode6 搜索后不显示标题视图

    我有适用于 iOS7 及更低版本的工作应用程序我使用 UISearchDisplayController 在表中进行搜索 问题 iOS8 中搜索后标题视图不显示 如下图所示 Before search After search I trie
  • Prolog 中的关联列表

    我正在序言中做关联列表 我看到了这个主题 但我不明白代码 Prolog 中的关联列表 https stackoverflow com questions 50069875 associative lists in prolog 要检查列表是
  • 写入失败:地址错误

    Write and rewrite include
  • 我可以使用元标记在一个 HTML 页面上声明两个不同的字符集吗?

    可以使用元标记在页面上指定两个不同的字符集 例如 我尝试添加它们 但不起作用 P Thanks 不 这是不可能的 添加两个不同的字符集声明有什么意义 您应该仅添加一项与您的内容相匹配的声明
  • C# - 检查哪个事件更改/访问了属性

    我有一个带有财产的课程说 private string fieldSelectedItem public string FieldSelectedItem get return fieldSelectedItem set fieldSele
  • Javascript - 如果超类构造函数接受参数,如何初始化超类

    考虑以下 Javascript 片段 var SuperClass function x this x x this a 5 var SubClass function x function IntermediateClass Interm
  • 重力形式 jQuery 无周末

    我已使用 Gravity Forms 中的 gform post render 函数来创建自定义日期选择器 并使用 minDate 选项提前选择 1 天 http www gravityhelp com documentation page
  • 如何查看OpenAIgym环境中可用的动作?

    使用 OpenAIgym 时 导入库后import gym 可以使用以下命令检查动作空间env action space 但这仅给出了动作空间的大小 我想知道动作空间的每个元素对应什么样的动作 有简单的方法吗 如果你的行动空间是离散的 一维
  • 扩展 Material UI 现有的深色模式颜色

    Material UI 的默认主题提供了一个调色板 包括一组特殊的颜色暗色 docs https next material ui com customization palette dark mode code https github
  • 每个循环中没有任何集合 - 如何处理它?

    当集合什么都没有时 我如何处理 for every 循环 我以为它会跳过但我得到一个例外 我是否需要将 foreach 循环包装在 if 中以检查是否没有任何内容 只有当它不是什么都没有时才进入 foreach 循环 For Each it
  • 在jenkins管道脚本中获取gradle变量

    我正在尝试使用 groovy 构建脚本将构建管道迁移到 管道插件 我的管道通常是 测试 等级 集成测试 gradle 构建 等级 发布 人工 我想在我的 jenkins 构建脚本中使用版本 组等 gradle 变量来发布到神器中的正确文件夹
  • 如何在 Windows 上以编程方式触发 Flip 3D?

    如何在 Windows Vista 和 7 上以编程方式触发 Flip 3D 是否有相关的 API 如果有 它叫什么 在哪里可以找到相关函数 我需要一个具体的答案 例如指向实际功能的网络链接 而不是像 哦 它在 DirectX 中 这样的通
  • 如何在Excel中复制范围,然后使用宏调整大小并粘贴到Word中

    Sub CopyToWord Dim objWord As New Word Application copying the range that I want to paste in Word With ThisWorkbook Work
  • 从命令行参数将十六进制转换为二进制 C

    这是一项家庭作业 当在终端中调用命令时 我必须将十六进制转换为二进制 我的 老师 并没有真正 教 C 所以我完全迷失了 我必须包含一个过程 void printBits unsigned long i 用于打印 i 中的位 它将使用 p 开
  • getter/setter VS 公共变量的好处?

    使用有什么好处 private var someProp String public function set someProp value String void someProp value public function get so
  • 如何在Qt中显示选定的日期和数字

    我目前正在使用 QCalendarWidget 我需要一些想法来完成以下任务 将 QCalendarWidget 中的 selecteDate 和数字添加到某种表格中的最佳方法是什么 我想要的基本上是一个日期列表 每个日期都附有一个数字 这
  • strcmp 将无法在 if 语句中正确计算[重复]

    这个问题在这里已经有答案了 include
  • 获取函数的默认值?

    有没有办法在 JavaScript 中检索函数的默认参数值 function foo x 5 things I do not control 有没有办法获得默认值x这里 最好是这样的 getDefaultValues foo x 5 注意t
  • 如何让两个下拉列表并排显示?

    我一直在尝试使两个下拉列表并排显示 但无法弄清楚 要设置什么 CSS 元素属性来执行此操作 我必须以以下格式显示它 company mobile 代替 company mobile 这样的对有 3 对 此外 这对 2 个选择下拉框似乎并不遵
  • sql if语句检查空参数

    我正在尝试传递一个参数 如果该参数为空 我想将县 ID 设置为其自身 如果县 ID 不为空 那么我想带回县协作中所有县的记录 我收到错误的语法错误 关于如何做到这一点有什么想法吗 DECLARE pCountyId as int selec