将多行合并为一行以替换列中的空值

2024-02-29

如何将多行合并为一行,以便一行中的某些列替换要合并的另一行中相同列中的空值? 这是我所拥有的和我想要实现的目标的一个例子。查询是:

SELECT  Drug. Name,
        DefaultVendor.Name,
        Drug.Strength,
        Catalog.DIN,
        Catalog.PackSize,
        “Vendor1 Price” = CASE WHEN Ven.Name = ‘Vendor1’ THEN Catalog.Price ELSE NULL END,
        “Vendor1 ItemNum” = CASE WHEN Ven.Name = ‘Vendor1’ THEN Catalog.ItemNum ELSE NULL END,
        “Vendor2 Price” = CASE WHEN Ven.Name = ‘Vendor2’ THEN Catalog.Price ELSE NULL END,
        “Vendor2 ItemNum” = CASE WHEN Ven.Name = ‘Vendor2’ THEN Catalog.ItemNum ELSE NULL END
FROM    Catalog INNER JOIN
        Drug ON Catalog.DIN = Drug.DIN INNER JOIN
        Vendor AS Ven ON Ven.ID = Catalog.VendorID LEFT JOIN
        Vendor AS DefaultVendor ON DefaultVendor.ID = Catalog.DefVendorID OR (DefaultVendor.ID IS NULL)
WHERE   Catalog.Description LIKE ‘Acetaminophen%’
GROUP BY    Ven.Name,
            Drug.Name,
            Drug.Strength,
            Catalog.DIN,
            Catalog.PackSize,
            Catalog.Price,
            Catalog.ItemNum
ORDER BY    Drug.Strength

吐出的结果如下所示:

|          Name | DefaultVendor | Strength | DIN | PackSize | Vendor1Price | Vendor1ItemNum | Vendor2Price | Vendor2ItemNum |
|---------------|---------------|----------|-----|----------|--------------|----------------|--------------|----------------|
| Acetaminophen |       Vendor1 |    325mg |   1 |      100 |            5 |           1234 |       (null) |         (null) |
| Acetaminophen |       Vendor1 |    325mg |   1 |      200 |            9 |           1235 |       (null) |         (null) |
| Acetaminophen |       Vendor1 |    325mg |   1 |      100 |       (null) |         (null) |         5.25 |           1111 |
| Acetaminophen |       Vendor1 |    325mg |   1 |      200 |       (null) |         (null) |           10 |           1122 |
| Acetaminophen |       Vendor1 |    500mg |   2 |      100 |            7 |           1236 |       (null) |         (null) |
| Acetaminophen |       Vendor1 |    500mg |   2 |      200 |           13 |           1237 |       (null) |         (null) |
| Acetaminophen |       Vendor1 |    500mg |   2 |      100 |       (null) |         (null) |          7.5 |           1133 |
| Acetaminophen |       Vendor1 |    500mg |   2 |      200 |       (null) |         (null) |           14 |           1144 |

所以我知道数据就在那里。我想要做的是将具有相同强度和包装尺寸的行组合在一起,以便单行将显示两个供应商的价格和商品编号。以下是我正在寻找的结果:

|          Name | DefaultVendor | Strength | DIN | PackSize | Vendor1Price | Vendor1ItemNum | Vendor2Price | Vendor2ItemNum |
|---------------|---------------|----------|-----|----------|--------------|----------------|--------------|----------------|
| Acetaminophen |       Vendor1 |    325mg |   1 |      100 |            5 |           1234 |       (null) |         (null) |
| Acetaminophen |       Vendor1 |    325mg |   1 |      200 |            9 |           1235 |       (null) |         (null) |
| Acetaminophen |       Vendor1 |    325mg |   1 |      100 |       (null) |         (null) |         5.25 |           1111 |

我想你几乎做对了。

只需添加MAX()到每个领域

“Vendor1 Price” = MAX(CASE WHEN Ven.Name = ‘Vendor1’ THEN Catalog.Price END),
“Vendor1 ItemNum” = MAX(CASE WHEN Ven.Name = ‘Vendor1’ THEN Catalog.ItemNum END),
“Vendor2 Price” = MAX(CASE WHEN Ven.Name = ‘Vendor2’ THEN Catalog.Price END),
“Vendor2 ItemNum” = MAX(CASE WHEN Ven.Name = ‘Vendor2’ THEN Catalog.ItemNum END)

也不需要包括ELSE NULL默认情况下如果CASE未找到匹配项将返回NULL

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

将多行合并为一行以替换列中的空值 的相关文章

随机推荐

  • 我应该将密钥放在 Flask 中的哪里?

    在读的时候exploreflask com https exploreflask com configuration html 我了解到最好的做法是使用两个不同的配置文件 一个用于开发 一个用于生产 我不明白是否将密钥放在开发或生产配置中
  • Select2 jquery - 如何获取选择框中的文本

    我输入的文本如下
  • Google+ JavaScript API:如何检测用户登录状态?

    我已经部署了 Google 登录按钮 现在我必须提供退出按钮 在此之前 我需要知道用户是否仍然登录 然后我可以显示或隐藏此按钮 我找到了这个文档 gapi auth checkSessionState sessionParams 回调 ht
  • Azure 分支 PR 策略 - 要求源分支是最新的

    我正在尝试在我的设备上获取优质分支机构政策develop分支 到目前为止我已经有了一些很好的基础知识 要求评审员批准 要求所有检查都通过 限制合并类型 我想确保 PR 中的源分支必须与其目标分支保持同步 我似乎找不到这个设置 想知道是否有人
  • 将 LEFT OUTER JOIN 转换为实体框架

    这是我想要转换为 EF4 3 的 SQL 查询 command database GetSqlStringCommand select H AUTHENTICATION ID USERNAME PERMISSIONS ORGANIZATIO
  • Spark SQL 中联接大表的优化方式是什么

    我需要使用 Spark SQL 或 Dataframe API 连接表 需要知道实现它的优化方法是什么 场景是 所有数据均以 ORC 格式 基本数据帧和参考文件 存在于 Hive 中 我需要将从 Hive 读取的一个基本文件 Datafra
  • 长按手势识别器仅在手指抬起时触发

    我在长按手势识别器方面遇到了一个有趣的问题 我将其中一个放在 UITableView 上 只有当我长按后抬起手指时它才起作用 所以基本上 我会将手指放在一个单元格上 然后当我抬起手指时 它会触发长按 我通过把printn长按开始和结束的时间
  • 使用 :data 属性作为选择器来过滤元素

    我正在尝试使用自定义数据属性通过下拉选择来过滤内容 我似乎无法让选择器正常工作 只是想知道这是否真的可能 目前正在看https api jqueryui com data selector https api jqueryui com da
  • 模型与服务解耦:如果我的模型需要服务怎么办?

    服务层应该位于模型层之上 因此 模型不应该调用服务 然而 我面临着我需要的情况 例如 interface Component getResult class Number implements Component private value
  • 自定义注解可以抛出自定义异常,而不是MethodArgumentNotValidException?

    我有一个 ExceptionHandler MethodArgumentNotValidException class 在验证失败时返回 HTTP 代码 400 我创建了一个自定义注释 需要将 HTTP 代码更改为 422 但是 由于异常处
  • Android Xperia X10 SoundPool

    我收到一些 Android 应用程序用户的报告称 X10 上没有播放声音 我有点困惑 因为它适用于我尝试过的所有其他手机 Neus One Hero Droid 我正在使用 SoundPool 类来播放声音 其他人在使用 X10 时是否遇到
  • 如何编译由多个文件组成的Go程序?

    我有一个小程序 由三个文件组成 所有文件都属于同一个包 main 但当我这样做时go build main go构建不成功 当它只是一个文件时 main go 一切正常 现在我花了一些功夫来分离代码 看起来编译器无法找到从中取出的内容mai
  • 从右到左方向按钮尺寸的不相关变化

    我将 9 个 jbutton 添加到 jpanel 中 并将面板添加到 jscrollpane 中 并将其添加到 jframe 中 http www pic1 iran forum ir images up9 954263236836585
  • 使用动态库进行 Objective C Method Swizzling

    我正在尝试学习方法调整 我在 Objective C 中创建了一个程序 它只调用其类中的一个方法 现在我正在尝试使用 DYLD INSERT LIBRARIES 加载动态库 以便我可以使用动态库中定义的新方法覆盖我的方法实现 目的是修改参数
  • 如何使用“concurrent.futures.ProcessPoolExecutor”取消长时间运行的子进程?

    你可以看到完整的here https github com traverseda rratbot blob master main py L35 我的代码的简化版本如下 executor ProcessPoolExecutor 10 try
  • 如何在 pl/sql 中的另一个游标的 select 语句中使用游标中的变量

    我想运行一个查询 获取结果 然后使用第二个语句 光标 中第一个语句的值与另一个 select 语句迭代该查询的结果 我的数据库中有 40 个用户 所有用户都具有相同的数据库模式结构 我想通过以下方式获取用户名 SELECT distinct
  • 在 PowerShell 中使用 StreamWriter 附加到文件

    我创建了一个 PowerShell 脚本 该脚本使用 StreamWriter 将 Windows 中文件夹的权限结果写入 CSV 文件 目前 该脚本为每个文件夹创建一个新文件 我的问题是 StreamWriter 是否可以附加到文件而不是
  • FirebaseCore 词法或预处理器问题

    所以我在使用 firebase 编译我的项目时遇到了问题 这个问题是在我更新所有 firebase pod 后开始的 自从我更新了 pod 后 我就一直收到此错误 词法或预处理器问题 然后当我转到错误是什么时 它说这个 找不到 Google
  • 对 kafka 消费者进行负载测试

    我试图弄清楚如何对卡夫卡消费者进行负载测试 在我的应用程序中 消费者从 kafka 读取消息并做了很多工作 其中大部分是在数据库中写入内容 由于这对我的团队来说是一个重要的过程 因此我希望能够对消费者进行负载测试 并能够获得一些有关消费情况
  • 将多行合并为一行以替换列中的空值

    如何将多行合并为一行 以便一行中的某些列替换要合并的另一行中相同列中的空值 这是我所拥有的和我想要实现的目标的一个例子 查询是 SELECT Drug Name DefaultVendor Name Drug Strength Catalo