如何改进带有内连接的存储过程的代码以可能为空tvp

2023-12-26

我想改进以下存储过程的代码。我想将它加入到单个选择语句中。你能找到更好的方法吗?

CREATE PROCEDURE [dbo].[pr_FinDocument_Filter]
  @finDocIdForFilter [dbo].[GuidList] READONLY,
  @filteredSid nvarchar(64),
  @filteringOffsetInDay int
AS
BEGIN

    IF (@filteredSid is null or @filteringOffsetInDay is null)
        BEGIN
            RAISERROR(N'arguments must have a value', 15, 1);
        END

    IF EXISTS (SELECT 1 FROM @finDocIdForFilter)
        BEGIN
            SELECT fin_doc_extra.docId
            FROM
                [CpsOther].[dbo].[FinDocumentExtra] AS fin_doc_extra
                INNER JOIN @finDocIdForFilter       AS fin_doc_for_filter
                    ON fin_doc_extra.docId = fin_doc_for_filter.Id
                    AND fin_doc_extra.sid = @filteredSid
            WHERE
                DATEDIFF(DAY, CONVERT(DATE, fin_doc_extra.value, 105), CONVERT(DATE, GETDATE(), 126)) = @filteringOffsetInDay
        END
    ELSE
        BEGIN
            SELECT fin_doc_extra.docId
            FROM
                [CpsOther].[dbo].[FinDocumentExtra] AS fin_doc_extra
            WHERE
                fin_doc_extra.sid = @filteredSid
                AND DATEDIFF(DAY, CONVERT(DATE, fin_doc_extra.value, 105), CONVERT(DATE, GETDATE(), 126)) = @filteringOffsetInDay
        END

END

我想这可能对你有用。

SELECT  fin_doc_extra.docID
FROM    [CpsOther].[dbo].[FinDocumentExtra] AS fin_doc_extra
WHERE   DATEDIFF(DAY, CONVERT(DATE, fin_doc_extra.value, 105),
                 CONVERT(DATE, GETDATE(), 126)) = @filteringOffsetInDay
        AND fin_doc_extra.sid = @filteredSid
        AND ( ( fin_doc_extra.docId IN ( SELECT fin_doc_for_filter.Id
                                         FROM   @finDocIdForFilter ) )
              OR ( NOT EXISTS ( SELECT  1
                                FROM    @finDocIdForFilter )
                 )
            );
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何改进带有内连接的存储过程的代码以可能为空tvp 的相关文章

  • SQL - != 'NULL' 的解释

    我的SSMS代码如下 Select top 50 From FilteredContact Where statuscode 1 and emailaddress1 NULL and telephone1 NULL and address1
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • 如何修改现有表以添加时区

    我有一个包含 500 多个表的大型应用程序 我必须将应用程序转换为时区感知 当前应用程序使用new java util Date GETDATE 与服务器的时区 即没有任何时区支持 我已将这项任务分为几个步骤 以便于开发 我确定的第一个步骤
  • 优化 SQL Server 上的删除

    Deletesql server 上的有时很慢 我经常需要优化它们以减少所需的时间 我一直在谷歌上搜索一些关于如何做到这一点的提示 并且我发现了各种各样的建议 我想知道你最喜欢和最有效的驯服删除野兽的技术 以及它们如何以及为什么起作用 到目
  • 在 C# 中读取大型 SQL 脚本文件

    我正在尝试阅读一个大脚本 到目前为止我已经尝试了两种选择 选项1 由于内存空间不足的问题 我们无法在SQL Management Studio中打开大型脚本文件 所以最初我使用sqlcmd在远程主机上执行 160 mb SQL 脚本文件 5
  • 如何连接sql中具有相同值但在同一个表的不同列中的行?

    我正在尝试合并来自不同列的具有相同值的数据 并且仅停止显示没有连接值的记录 例如我有 ID TaxDecNo PrevTaxDec 1 5374 11135 2 9864 7394 3 11135 21784 4 7394 6872 5 2
  • 将 SQL Server 与 Dart 结合使用

    我还没有找到很好的答案 所以我想尝试一下得到答案 将 Microsoft SQL Server 与 Dart 结合使用的最佳方式是什么 我需要它能够从基本上任何操作系统 网络和移动设备上使用它 我觉得最好的方法可能是 GraphQL 但我对
  • 无法使用 Tedious 和 Node JS 连接到本地 SQL Server 数据库

    我正在尝试连接到本地计算机上的 SQL Server 我正在尝试使用乏味和乏味 ntlm 两者的配置如下 var tds require tedious ntlm var tds require tedious var config use
  • SQL Server:从 OPENDATASOURCE 中删除

    这有效 SELECT FROM OPENDATASOURCE Microsoft ACE OLEDB 12 0 Data Source d JobFiles MyFile xlsx Extended properties Excel 8 0
  • 意外的查询结果

    为什么我从 sql server 得到以下结果 SELECT 12 C1 CONVERT int C2 CASE WHEN THEN equal ELSE not equal END C3 Sql Server Fiddle 演示 http
  • Reporting Services 在哪里存储其日志文件

    最相关的谷歌结果似乎表明 为了访问日志 我们必须将您自己的日志表部署到数据库并制作报告服务写入它 http technet microsoft com en us library ms157403 aspx 简而言之 Reporting S
  • 如何搜索例程的内容/(SP-触发函数)

    我需要在数据库内所有例程的例程主体 存储过程 函数 触发器 中搜索文本 我该怎么做 Thanks SELECT OBJECT NAME object id FROM sys sql modules WHERE definition LIKE
  • 同一索引操作上的不同估计行?

    简介和背景 我必须优化一个简单的查询 下面的示例 重写几次后 我认识到同一个索引操作的估计行数会根据查询的编写方式而有所不同 最初 该查询执行了聚集索引扫描 因为生产中的表包含二进制列 该表相当大 大约 100 GB 并且全表扫描执行起来需
  • 更改列时快速删除并重新创建多个索引、视图、统计信息

    我的 项目 表中有一个 StoreNumber 列 我想将其更改为 NOT NULL 我最近清理了所有旧数据 以便不存在空条目 但是 当我执行以下语句时 由于对各种视图 索引和统计信息的多重依赖 它失败了 ALTER TABLE Proje
  • SQL Server 连接其他表中不存在的位置

    Service Asset AssetService Id Name Id Name AssetId ServiceId
  • 删除数据库中的行后如何重新排序ID

    我正在使用 C 来制作具有 sql 数据库的程序 在数据库中我有一个名为Workers 它有一个自动增量和主键ID column 当我删除一条记录时 ID 之间会出现间隙 删除记录后如何重新排序 ID UPDATE 我要做的就是找到记录后将
  • SELECT max(x) 返回 null;我怎样才能让它返回0?

    运行以下命令时如何返回 0 而不是 null SELECT MAX X AS MaxX FROM tbl WHERE XID 1 假设没有XID 1的行 or SELECT coalesce MAX X 0 AS MaxX FROM tbl
  • Spring Boot Data JPA 从存储过程接收多个输出参数

    我尝试通过 Spring Boot Data JPA v2 2 6 调用具有多个输出参数的存储过程 但收到错误 DEBUG http nio 8080 exec 1 org hibernate engine jdbc spi SqlStat
  • 如何获取自定义订单的结果? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 代替ASC or DESC 我希望我的查询结果采用特定的自定义顺序 例如 如果我想要的结果不是 A B C D 而是 P A L H 该怎么
  • SQL 更新 - 更新选定的行

    我正在使用 SQL Server 2008 我有一个名为MYTABLE有两列 ID STATUS 我想编写一个存储过程来返回其记录STATUS是 0 但是这个存储过程必须更新STATUS返回行数为 1 如何在单个查询中执行此选择和更新操作

随机推荐

  • 如何在Android Studio中调试?

    我怎么能够 设置断点 在断点处停止 发布 但保持调试模式 我所说的释放是指不要进入下一行 跳转到下一个断点 或者只是等到断点被击中 我没有时间也没有意愿深入研究 SDK 类 我只是想在完成几行之后就退出 到目前为止 我唯一能做的就是终止调试
  • 如何将 ALAsset 中的视频显示到 UICollectionview ios

    我尝试使用下面的代码从照片库中获取所有视频ALAsset 现在 我想将所有视频显示到UICollectionview但它似乎没有显示任何东西 请给我一些建议 提前致谢 ViewDidLoad 从照片库获取所有视频 allVideos NSM
  • 跨源资源共享(CORS)——我在这里遗漏了什么吗?

    我正在读关于CORS https developer mozilla org en HTTP access control我认为实施既简单又有效 然而 除非我遗漏了什么 否则我认为规范中遗漏了很大一部分 据我了解 外国站点根据请求的来源 以
  • 用于数据分析目的的特定 postgresql 服务器配置

    如果您使用 postgresql 数据库 是否有关于使用 postgresql conf 文件调整服务器性能的任何提示具体来说用于数据科学部门和数据分析目的 或者性能调整本身与目的无关 并且您将用它做什么没有真正的区别 因为 这都是关于提取
  • 制作因子变量的频率直方图

    我对 R 很陌生 所以我对这样一个基本问题表示歉意 我花了一个小时谷歌搜索这个问题 但找不到解决方案 假设我的数据集中有一些关于常见宠物类型的分类数据 我将其作为 R 中的字符向量输入 其中包含不同类型动物的名称 我是这样创建的 anima
  • 无法在 GitLab 上执行合并请求

    将 GitLab 从 6 2 更新到 7 1 后 我无法执行合并请求 它告诉我没有任何东西可以合并 但当然有 系统信息 System information System Current User git Using RVM no Ruby
  • 更改选项卡时添加动画

    你好 我有一个包含两个子活动的 TabHost 活动 为子活动添加 左 右 动画的最佳解决方案是什么 此致 Hi最好的解决方案是向布局添加动画假设你有两个选项卡 tabs TabHost this findViewById R id tab
  • 在 postgresql 表中存储带有特殊字符(例如引号或反斜杠)的字符串

    我有一个有价值的字符串 MAX DATE QUERY SELECT iso timestamp MAX time stamp AS MAXTIME FROM observation WHERE offering id HOBART 但是在插
  • UIWebView 上 mediaPlaybackAllowsAirPlay 属性的用途

    UIWebView类参考描述了mediaPlaybackAllowsAirPlay如下 一个布尔值 用于确定是否允许从此视图进行隔空播放 当 mediaPlaybackAllowsAirPlay 设置为 YES 时 如果在我的 iPad 上
  • 放置亚马逊横幅 |角V4

    我将亚马逊横幅放在 Angular Material 2 卡内 但问题是它没有渲染 它显示空 div 可能是什么原因 下面是显示我如何做到这一点的代码
  • 通过 Google Apps 脚本更改文档的权限

    我正在寻找示例脚本 该脚本根据传递给脚本的电子邮件地址和 DocumentID 重置外部电子表格的默认权限 我打算创建一个脚本 可以解析电子邮件中的信息以获取DocumentID和电子邮件 执行权限从默认更改为任何有链接的人 然后通过电子邮
  • 使用 Rx 消除按钮点击的抖动

    我正在尝试制作一个简单的 按钮去抖动器 它将计算过滤的点击次数并通过 TextView 显示它 我想过滤快速 垃圾点击 忽略时间间隔小于 300 毫秒的点击 我做了研究并偶然发现Rx太棒了debounce 理论上应该可以做我想要的事情 或者
  • 如何使用javascript将大图像转换为十六进制?

    如果我尝试将图像转换为十六进制 无论我使用哪个函数 我都会收到此错误消息 该图像的大小为 7 MB 19812 毫秒 清除 1401 2 1455 0 gt 1401 2 1455 0 MB 9 9 0 ms 自上次 GC 以来 8 3 m
  • 有没有办法在 Folium 中绘制许多标记?

    我正在尝试使用 Folium 从 pandas 数据框中读取地理信息 我的代码是这样的 import folium from folium import plugins import pandas as pd operations on d
  • 类型错误:MongoStore 不是构造函数

    我正在制作一个带有谷歌身份验证的网站 我尝试将会话存储在 mongodb 数据库中 但是当我将商店选项添加到我的快速会话中时 它不断给出以下错误 TypeError MongoStore is not a constructor at Ob
  • 无法使用 Cygwin 从 Java 运行 C 程序

    我正在尝试使用 JNI 编写我的第一个 Java C 程序 这是 我的 代码的样子 它是从this http stuf ro calling c code from java using jni网站 HelloWorld java publ
  • 无法在 Ubuntu 14.04 中使用 sh robomongo.sh 运行 robomongo.sh

    我刚刚下载了robomongo64 位用于ubuntu来自官方网站 然后我打开终端并浏览文件夹结构并执行命令bin folder sh robomongo sh 我收到这样的错误 robomongo sh 5 robomongo sh Ba
  • 下划线方法意味着什么?

    我对 Python 语言比较陌生 在执行以下操作时遇到了这个问题 help list 这是我遇到的情况 add x add y lt gt x y contains x contains y lt gt y in x delitem x d
  • 奇点运行并执行命令

    我知道如何运行奇点 singularity run mn sarpanitu singularity test fenics and more img 有没有办法做一行 或多行 来运行上一个命令 然后在奇点中运行echo hi there
  • 如何改进带有内连接的存储过程的代码以可能为空tvp

    我想改进以下存储过程的代码 我想将它加入到单个选择语句中 你能找到更好的方法吗 CREATE PROCEDURE dbo pr FinDocument Filter finDocIdForFilter dbo GuidList READON