MySQL,多行分隔字段

2023-12-14

我有一个 MySQL 表,其中包含如下字段和数据;

PartNumber  Priority SupName
a1            0        One
a2            0        One
a2            1        Two
a3            0        One
a4            1        Two
a5            2        Three

我正在尝试创建一个视图,其中具有多行的部分组合成一行,并组合成单独的字段,例如

理想的是这个;

PartNumber  Sup1  Sup2  Sup3
a1          One   NULL  NULL
a2          One   Two   NULL
a3          One   NULL  NULL
a4          Two   NULL  NULL
a5          Three NULL  NULL

或者我可以忍受这个

PartNumber  Sup1  Sup2  Sup3
a1          One   NULL  NULL
a2          One   Two   NULL
a3          One   NULL  NULL
a4          NULL  Two   NULL
a5          NULL  NULL  Three

我将如何构建视图或选择语句来完成此任务?

到目前为止我最接近的是;

SELECT PartNumber, 
       IF(Priority=0, SupName, NULL) AS Sup1, 
       IF(Priority=1, SupName, NULL) AS Sup2,
       IF(Priority=2, SupName, NULL) AS Sup3 
  FROM SupXref 
ORDER BY PartNumber

然而,这为每个字段提供了单独的行,并且我需要一行。


你只是错过了一个分组依据:)

SELECT PartNumber,
  MAX(IF (Priority = 0, SupName, NULL)) AS Sup1,
  MAX(IF (Priority = 1, SupName, NULL)) AS Sup2,
  MAX(IF (Priority = 2, SupName, NULL)) AS Sup3
FROM SupXref
GROUP BY PartNumber

Edit:

玩了一段时间后,我想我得到了您正在寻找的第一个解决方案。试一试 :)

SELECT partnumber,
  COALESCE(Sup1, COALESCE(Sup2, Sup3)) AS Supp1,
  IF (Sup1 IS NULL, IF (Sup2 IS NULL, NULL, Sup3), COALESCE(Sup2, Sup3)) AS Supp2,
  IF (Sup1 IS NULL, NULL, IF (Sup2 IS NULL, NULL, Sup3)) AS Supp3
FROM (
  SELECT PartNumber,
    MAX(IF (Priority = 0, SupName, NULL)) AS Sup1,
    MAX(IF (Priority = 1, SupName, NULL)) AS Sup2,
    MAX(IF (Priority = 2, SupName, NULL)) AS Sup3
  FROM SupXref
  GROUP BY PartNumber
) AS S

对于下表:

+------------+----------+---------+
| PARTNUMBER | PRIORITY | SUPNAME |
+------------+----------+---------+
| a1         |        2 | Three   |
| a2         |        1 | Two     |
| a3         |        2 | Three   |
| a3         |        1 | Two     |
| a4         |        0 | One     |
| a5         |        0 | One     |
| a5         |        2 | Three   |
| a6         |        0 | One     |
| a6         |        1 | Two     |
| a7         |        0 | One     |
| a7         |        1 | Two     |
| a7         |        2 | Three   |
+------------+----------+---------+

数据变成这样:

+------------+------+------+-------+
| PARTNUMBER | SUP1 | SUP2 | SUP3  |
+------------+------+------+-------+
| a1         |      |      | Three |
| a2         |      | Two  |       |
| a3         |      | Two  | Three |
| a4         | One  |      |       |
| a5         | One  |      | Three |
| a6         | One  | Two  |       |
| a7         | One  | Two  | Three |
+------------+------+------+-------+

最后进入这个:

+------------+-------+-------+-------+
| PARTNUMBER | SUPP1 | SUPP2 | SUPP3 |
+------------+-------+-------+-------+
| a1         | Three |       |       |
| a2         | Two   |       |       |
| a3         | Two   | Three |       |
| a4         | One   |       |       |
| a5         | One   | Three |       |
| a6         | One   | Two   |       |
| a7         | One   | Two   | Three |
+------------+-------+-------+-------+
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL,多行分隔字段 的相关文章

  • java库维护数据库结构

    我的应用程序一直在开发 所以偶尔 当版本升级时 需要创建 更改 删除一些表 修改一些数据等 通常需要执行一些sql代码 是否有一个 Java 库可用于使我的数据库结构保持最新 通过分析类似 db structure version 信息并执
  • SQL Server 2008 错误 233

    我正在使用以下 sql 脚本在 SQL Server 2008 中创建新登录名 CREATE LOGIN xyz WITH PASSWORD xyz DEFAULT DATABASE master DEFAULT LANGUAGE us e
  • 尝试在 React 应用程序中连接到 MySQL 数据库时,无法读取未定义的属性(读取“查询”)错误

    我正在尝试连接到 MySQL 数据库并在单击按钮后在 React 应用程序中运行查询 一些它如何给出错误 我当前的代码如下所示 import mysql from mysql function App async function sync
  • 分组和切换列和行

    我不知道这是否会被正式称为枢轴 但我想要的结果是这样的 Alex Charley Liza 213 345 1 23 111 5 42 52 2 323 5 23 1 324 5 我的输入数据采用这种形式 Apt Name
  • 根据由另一列分组的不同列的最大值获取值[重复]

    这个问题在这里已经有答案了 我想根据由另一列分组的不同列的最大值来获取列的值 我有这张表 KEY NUM VAL A 1 AB B 1 CD B 2 EF C 2 GH C 3 HI D 1 JK D 3 LM 并想要这样的结果 KEY V
  • 在上下文中提取搜索字符串

    我正在尝试执行 MySQL 查询 在上下文中提取搜索字符串 因此 如果搜索是 mysql 我想从 body 列返回类似的内容 下载后只需几分钟MySQL安装程序即可使用 这就是我现在得到的 但它不起作用 因为它只是从正文字段中获取前 20
  • 如何将SQL数据加载到Hortonworks中?

    我已在我的电脑中安装了 Hortonworks SandBox 还尝试使用 CSV 文件 并以表结构的方式获取它 这是可以的 Hive Hadoop nw 我想将当前的 SQL 数据库迁移到沙箱 MS SQL 2008 r2 中 我将如何做
  • 无法在 .net core 2 中从 MySQL 构建“日期”类型列

    我已经开始了一个新的 net core 2 项目 我正在尝试将 MySQL 数据库导入实体框架 我使用此命令来搭建数据库 Scaffold DbContext server localhost port 3306 user id user
  • oursql 中的参数化查询

    如果有人能告诉我是否可以使用命名占位符进行参数化查询 我将不胜感激oursql 一个用于与 MySQL 数据库交互的 python 模块 例如 我尝试了一种可以与 sqlite3 一起使用的查询 c execute select from
  • 猪的组连接等效吗?

    试图在 Pig 上完成这个任务 寻找 MySQL 的 group concat 等效项 例如 在我的表中 我有以下内容 3fields userid clickcount pagenumber 155 2 12 155 3 133 155
  • 从 Grib 天气模型中提取数据

    我已经下载了grib1模型数据来自GFS http en wikipedia org wiki Global Forecast System 我使用的是 Mac OS X 并且能够构建wgrib2文件来自NOAA http en wikip
  • 加载数据infile,Windows和Linux的区别

    我有一个需要导入到 MySQL 表的文件 这是我的命令 LOAD DATA LOCAL INFILE C test csv INTO TABLE logs fields terminated by LINES terminated BY n
  • MySQL - 多个结果集

    我正在使用 NET Connector 连接到 MySQL 在我的应用程序中 很少有线程使用相同的连接 因此如果 MySQLDataReader 尚未关闭并且某个线程正在尝试执行查询 则会出现该错误 已经有一个打开的 DataReader
  • MySQL 将表从 Latin1 转换为 utf8

    我需要将包含大量数据的表从 Latin1 转换为 utf8 以便它可以接受韩语字符 如何更改该表而不损坏其中的数据 我的 SQL 语句是什么 最好的方法是什么 ALTER TABLE database name table name CON
  • 如何使用原始 SQL 查询实现搜索功能

    我正在创建一个由 CS50 的网络系列指导的应用程序 这要求我仅使用原始 SQL 查询而不是 ORM 我正在尝试创建一个搜索功能 用户可以在其中查找存储在数据库中的书籍列表 我希望他们能够查询 书籍 表中的 ISBN 标题 作者列 目前 它
  • 如何为我的整个 Node.js 应用程序使用相同的 MySQL 连接?

    我有一个app js 我从那里运行我的整个应用程序 在 app js 内部 我require许多文件中都有代码 对于每个文件 我都这样做 var mysql require mysql var mclient mysql createCon
  • Pandas 将多行列数据帧转换为单行多列数据帧

    我的数据框如下 code df Car measurements Before After amb temp 30 268212 26 627491 engine temp 41 812730 39 254255 engine eff 15
  • 获取mysql中逗号分隔行中不同值的计数

    一个表 Jobs 有 2 列 JobId 城市 当我们保存工作时 工作位置可能是多个城市 如下所示 JobId City 1 New York 2 New York Ohio Virginia 3 New York Virginia 我如何
  • 更改mysql数据库表中的日期格式

    大家早上好 只是一个简单的问题 在我现有的 MySql 数据库中 我几乎没有包含日期 的列 目前这些是年 月 日格式 但现在我需要将其全部更改为年 月 日格式 我试过了select date format curdate d m Y 但它不
  • Oracle:按月分区表

    我的解决方案 德语几个月 PARTITION BY LIST to char GEBURTSDATUM Month PARTITION p1 VALUES JANUAR PARTITION p2 VALUES Februar PARTITI

随机推荐

  • 如何折叠listviewitem UWP中的子控件

    通用Windows平台 C 如何从代码隐藏中折叠 展开项目 MainListView listitem 的子列表视图 我还没有找到任何有效的东西 我想在 SelectionChanged 事件中执行此操作 XAML
  • 如何使用 UIStoryboard Segues 将数据从一个视图传递到 IOS 中的另一个视图?

    我在用Xcode 4 3 1 我使用 Storyboard 创建了 UI 其中有许多视图控制器 Issue 在我的应用程序中 我使用 ShakeGesture 在摇晃时我正在做一些操作 它工作正常 但是 当摇动停止时 我需要将一些值传递给另
  • swift 中 objc 的 `UIViewController` 相当于什么?

    我想声明一个接受采用特定协议的 UIViewController 的函数 我怎样才能快速声明这一点 protocol MyProtocol func subtitle gt String func saveResults func setu
  • 如何仅比较cosmos db中的日期部分

    我们将 EmployeeId Name LogDate 数据存储在 cosmosdb 中 LogDate 数据是日期时间 我们希望从 cosmos 中获取数据 其中 LogDate 在 2018 01 15 和 2018 01 30 之间
  • 如何以编程方式停止/启动远程机器上的 Windows 服务?

    我想编写一个控制台或 Click Once WinForms 应用程序 它将以编程方式停止和 或启动远程盒子上的 Windows 服务 两个机器都运行 NET 3 5 哪些 NET API 可用于实现此目的 in C var sc new
  • 了解routes.rb文件中符号的用法

    我是 ruby 的新手 我正在开发一个项目 在routes rb文件中 有一些我不明白的语法 更准确地说 我可以在这个文件中找到 get account with a symbol get notes with no symbol 有什么不
  • ASP.NET Web API 身份验证选项

    有哪些选项可用于对由另一个域的 JQuery 应用程序使用的 MVC3 Web API 应用程序进行身份验证 以下是迄今为止我尝试过的限制 事情 我不想使用 OAuth 对于用户群有限的私人应用程序 我不能期望最终用户在现有提供商上拥有自己
  • 从 Azure 表存储获取实体(限制 1)

    我试图使用逻辑应用程序中的连接器从表存储中获取实体 过滤查询如下 chequeNo eq variables chequeNo 这会返回所有条目 但我只想返回 1 个 无法在任何地方找到解决方案 queries filter chequeN
  • angular.mock.inject 方法的问题

    我正在使用以下茉莉花测试用例 use strict describe companyService function var httpBackend companyService beforeEach angular mock module
  • 如何淡化变化的背景图像

    当我执行以下代码时 我想淡化图像 large img css background image url img 我尝试过在很多地方加入淡入淡出 Thanks 这可能就是您想要的 elem fadeTo slow 0 3 function t
  • 如何向正则表达式添加连字符

    我遇到过这种模式 w 和来自http gskinner com RegExr 网站我明白 w 匹配字母数字字符和下划线 并且 匹配先前的标记 1 次或多次 不太确定这意味着什么 如何将连字符添加到列表中 I tried w 但这不起作用 我
  • PHP 和 Exchange Web 服务:使用 php-ews 获取消息正文

    我无法使用 php ews 从 Exchange 2010 服务器获取电子邮件的消息正文 这是我的代码 ews new ExchangeWebServices hostname username password ExchangeWebSe
  • 写入 Java 进程的 InputStream

    我有一个通过以下方式启动 java 进程 即 执行已编译的 java 代码 的代码 ProcessBuilder builder new ProcessBuilder java Sample arg1 arg2 builder redire
  • Pytesseract OCR 多个配置选项

    我在使用 pytesseract 时遇到一些问题 我需要将 Tesseract 配置为接受个位数 同时也只能接受数字 因为数字零经常与 O 混淆 像这样 target pytesseract image to string im confi
  • 迁移到 .NET 6 后找不到视图

    我将 ASP NET CORE MVC 项目从 NET Core 2 1 迁移到 NET 6 进行相关更改后 项目编译并启动看似正常 但找不到视图 根路径已设置app Environment ContentRootPath Director
  • 我在 Google Play 开发者控制台中遇到的崩溃和 ANR 错误比 Firebase Crashlytics 中的要多。这正常吗?

    过去 30 天内 我在 Firebase Crashlytics 和 Google Play 开发者控制台中看到了我的应用程序的崩溃和 ANR 错误报告 这是我所看到的 Firebase Crashlytics 总共 5 次崩溃 ANR G
  • Excel 和 C# 应用程序之间的进程间通信?

    我想知道是否有一种方法可以在 excel 实例和 C 应用程序之间建立通信 例如 当单元格值发生变化时 我想将更新后的值实时发送到 C 应用程序 提前致谢 你需要办公室主要互操作程序集 它们是 MS Office 公开的 COM API 的
  • Swift 中的泛型和函数式编程

    下面 sum 函数的两个变体是我尝试用 Swift 重复 Abelson 和 Sussman 在经典的 计算机程序的结构和解释 一书中介绍的 lisp 版本 第一个版本用于计算某个范围内的整数之和 或某个范围内的整数的平方和 第二个版本用于
  • tvOS UITextField 编辑后为空

    Editing UITextFieldtvOS 中显示了一个新视图 用户可以在其中输入文本 完成文本输入后 用户将返回到之前的视图 但是 我发现当我从文本编辑器返回时 我编辑的文本不会显示在我的文本字段中 这是怎么回事 电视操作系统版本9
  • MySQL,多行分隔字段

    我有一个 MySQL 表 其中包含如下字段和数据 PartNumber Priority SupName a1 0 One a2 0 One a2 1 Two a3 0 One a4 1 Two a5 2 Three 我正在尝试创建一个视图