获取表中列中的行

2023-12-20

我想从我的表中得到一个特殊的结果,并且我想知道这是可能的!? 我有一个像这样的表: (idA , idB , val) 按此值:



idA |   idB |   val
----+-------+----------
1   |   5   |   50
1   |   6   |   0
1   |   7   |   NULL
2   |   5   |   100
2   |   6   |   12
2   |   7   |   0  

我想通过这样的格式从此表中进行选择:



idA |   5   |   6   |   7
----+-------+-------+-------
1   |   50  |   0   |   NULL
2   |   100 |   12  |   0
  

怎么可能?

注意:我进行了一些搜索,但一无所获,如果你知道一个好的关键词,这对我很有用。


您可以尝试这个查询:

SELECT idA
  ,GROUP_CONCAT(CASE WHEN idB = 5 THEN val ELSE NULL END) AS `5`
  ,GROUP_CONCAT(CASE WHEN idB = 6 THEN val ELSE NULL END) AS `6`
  ,GROUP_CONCAT(CASE WHEN idB = 7 THEN val ELSE NULL END) AS `7`
FROM MyTable
GROUP BY idA

如果您不知道数量idB您可以使用此动态查询:

SET @sql = NULL;
SELECT
  GROUP_CONCAT(DISTINCT
    CONCAT(
      'GROUP_CONCAT(CASE WHEN `idB` = ''',
      `idB`,
      ''' THEN val ELSE NULL END) AS `',
      `idB`, '`'
    )
  ) INTO @sql
FROM MyTable;

SET @sql = CONCAT('SELECT idA, ', @sql,'
                     FROM MyTable
                    GROUP BY idA
                  ');

PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;

Output:

| IDA |   5 |  6 |      7 |
---------------------------
|   1 |  50 |  0 | (null) |
|   2 | 100 | 12 |      0 |

See 这个 SQLFiddle http://sqlfiddle.com/#!2/3930af/1

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

获取表中列中的行 的相关文章

  • 在存储过程中验证用户的最简单方法?

    我需要一个存储过程 可以通过发送以下内容来检查登录尝试时他们是否是有效用户login and password查看它们在数据库中是否匹配 有没有一种简单的方法可以做到这一点 如果没有更多信息 我目前能提供的最好信息是 CREATE STOR
  • 如何从批量数据中的mysql列中删除所有非数字字符

    我想从列中删除所有非数字字符 我的数据库中有大量数据 目前我正在使用以下链接中描述的方法 http venerableagents wordpress com 2011 01 29 mysql numeric functions http
  • st_intersects 与 st_overlaps

    这两个查询有什么区别 select a gid sum length b the geom from polygons as a roads as b where st intersects a the geom b the geom gr
  • H2 用户定义的聚合函数 ListAgg 不能在第一个参数上使用 DISTINCT 或 TRIM()

    所以我有一个 DB2 生产数据库 我需要在其中使用可用的函数 ListAgg 我希望使用 H2 的单元测试能够正确测试此功能 不幸的是H2不直接支持ListAgg 但是 我可以创建一个用户定义的聚合函数 import java sql Co
  • 如何在MYSQL中将整个字符串小写并保持第一个大写[重复]

    这个问题在这里已经有答案了 我的表栏目 我预期的输出会在列中发生变化 Smith Allen Doyle Dennis Baker Waker 这是我尝试过的 但不起作用 UPDATE TABLE employee SET last nam
  • 如何使用 django ORM 在外键字段上连接两个表?

    假设我有以下模型 class Position models Model name models CharField class PositionStats models Model position models ForeignKey P
  • PHP MySQL 使用选项/选择 HTML 表单标签进行多重搜索查询

    我正在尝试使用两个搜索字段设置基本的 MySQL LIKE 搜索 我不想拥有它 所以它有多个可选搜索字段 例如if isset POST city isset POST name 我不知道如何用 HTML 来做到这一点
  • 如何通过Elasticsearch模糊匹配电子邮件或电话?

    我想通过 Elasticsearch 对电子邮件或电话进行模糊匹配 例如 匹配所有以以下结尾的电子邮件 gmail com or 匹配所有电话开头136 我知道我可以使用通配符 query wildcard email gmail com
  • 如何在 DB2 中创建返回序列值的函数?

    如何在 DB2 中创建一个从序列中获取值并返回该值的函数 应该可以在 select 或 insert 语句中使用该函数 例如 select my func from xxx insert into xxx values my func 基本
  • 数字表与递归 CTE 生成一系列数字

    为什么使用数字表比使用递归 CTE 动态生成它们要快得多 在我的机器上 给定一张桌子numbers单列n 主键 包含从1到100000的数字 查询如下 select n from numbers 大约需要 400 毫秒才能完成 使用递归 C
  • 日期语句之间的 JPQL SELECT [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我想将此 SQL 语句转换为等效的 JPQL SELECT FROM events WHERE events date BETWE
  • MYSQL从每个类别中随机选择一条记录

    我有一个数据库Items表看起来像这样 id name category int 有几十万条记录 每个item可以是 7 种不同的之一categories 对应于categories table id category 我想要一个从每个类别
  • 我不断收到错误“关系 [TABLE] 不存在”

    我一直在尝试查询数据库中的两个表 在服务器资源管理器中 我可以看到两个表 甚至可以看到其中的列 我们将它们称为 Schema table1 和 Schema table2 其中 Schema 的第一个字母大写 我尝试运行以下查询 selec
  • mysql自动存储记录创建时间戳

    mysql 有什么方法可以在创建记录时自动将时间戳存储在记录行中 我试图使用时间戳 数据类型 和 current timestamp 作为默认值 但后来意识到每次更新记录时都会更新 我只需要一些可以存储创建时间戳的东西 Thanks Set
  • 什么是时序数据库?

    What is 时间序列数据库例如InfluxDB 我应该何时 何地使用它 请给我它的业务场景示例 检查wiki https en wikipedia org wiki Time series database 时间序列数据库 TSDB 是
  • MySQL 追加字符串

    How can I append a string to the end of an existing table value Let s say I have the table below And let s say that Mari
  • 快速将列的副本添加到 MySQL 表

    我需要一种快速的方法来复制表中的 DATETIME 列并为其指定一个新名称 我的表中有一个名为 myDate 的列 名为 myResults 我需要一个查询来在名为 newDate 的表中创建一个新列 该列的数据与 myDate 列完全相同
  • SQL 最近日期

    我需要在 php 中获取诸如 2010 04 27 之类的日期作为字符串 并在表中找到最近的 5 个日期 表中的日期保存为日期类型 您可以使用DATEDIFF http dev mysql com doc refman 5 1 en dat
  • 如何通过SQL查询检查是否有JSON函数?

    有SQL 2016 中的 JSON 函数 https learn microsoft com en us sql t sql functions json functions transact sql例如 JSON VALUE JSON Q
  • 如何部署“SQL Server Express + EF”应用程序

    这是我第一次部署使用 SQL Server Express 数据库的应用程序 我首先使用实体 框架模型来联系数据库 我使用 Install Shield 创建了一个安装向导来安装应用程序 这些是我在目标计算机中安装应用程序所执行的步骤 安装

随机推荐

  • 从解析查询块返回 UIImage 数组

    我无法从此函数获得 UIImage 返回 这getDataInBackgroundWithBlock不允许我设置除Void in 然而 该块确实增加了iconArray当它迭代时 但是一旦超出该块 数组又会变空 您将在下面的代码中看到数组正
  • Firebase 动态链接在 iOS 上不起作用

    我正在制作一些应用程序并使用 firebase 动态链接 当我在我的 Android 手机上测试动态链接时 效果很好 在我的iOS中 它也可以工作 但是页面没有改变并且任何参数都没有传递 当我在 safari 上输入如下图所示的深度链接时
  • 如何使用谷歌地图V2通过触摸来在地图片段上绘制形状

    大家好 我正在使用 Google 地图 V2 我必须通过触摸在地图片段上绘制一个形状 也就是说 如果我在地图上旋转手指 就会生成一个形状 我遇到问题 因为当我们触摸时 Google mapV2 不提供纬度和经度 地图 我不需要单击 MapV
  • 限制mongodb集合中的文档数量

    我有一个用作缓存的集合 如何将这个集合中的文档数量限制为 5M 注意 可以更新的缓存项将存在于缓存中 我尝试使用 capped 但保存在 capped 集合中的项目无法修改 有没有办法做到这一点 我想避免删除该项目然后插入更新项目 不幸的是
  • “调试器无法继续运行该进程。”

    我一直在搞乱 VS 2010 调试设置 试图进入 NET Framework 工作 好吧 我无法让它工作 我还尝试过 Reflector VS 插件 并且一度可以正常工作 然后我随机开始收到此错误 This only当我在调用的行上有断点时
  • PHP 在 fclose 后无法取消链接文件

    我的脚本完成后 我可以删除该文件 但在它运行时我无法触及它 即使在fclose 这是我尝试使用的代码 Files glob SERVER DOCUMENT ROOT files csv File fopen Files 0 r while
  • 获取变量“@xml_files”不会在...行保持共享

    我有以下 Perl 代码 sub merge xml foreach my repository repo1 repo2 my xml files sub match xml my filename File Find dir if fil
  • jQuery,悬停时图像变化[重复]

    这个问题在这里已经有答案了 好的 我已经通过 PHP 动态生成了图像 因此结果不一定相同 在过去的四个小时里 我浏览了互联网并使用 jQuery 和 或 CSS 尝试了无数的事情 并且我想出了以下可行的方法 a href build php
  • 如何使用 Ninject 注入一些通用的 asp.net http 处理程序?

    我是 Ninject 的新手 我不知道如何注入我的通用 http 处理程序 我有一个 MVC3 项目 我将我的服务注入到控制器中 没有任何问题 这是我在 Ninject App start 类中用于注册服务的内容 private stati
  • 以编程邮件合并方式将数据注入到现有的 Excel 电子表格中?

    我想自动将数据输入到 Excel 电子表格中 用户数据将存在于网站上 当用户请求时 需要将该数据注入到 Excel 电子表格中 复杂之处在于 Excel 电子表格的格式在不同用户之间可能存在很大差异 它将由用户定义 我一直认为这是一个模板问
  • 如何让 IDropTarget 与 Delphi 中的 Drop Handler 配合使用?

    我已将文件扩展名与我的 Delphi 2009 程序相关联 我一直在使用命令行调用方法将文件名传递给我的 Delphi 程序 以便可以打开它 但是 我发现当选择多个文件并一次单击所有文件时 它会在程序的单独实例中打开每个文件 我问过这个 h
  • SqlServer 2005:没有共享记录的死锁问题

    我遇到两个不访问任何公共记录的事务的死锁问题 也没有锁升级 所以我无法解释为什么可能出现僵局 当两个这样的事务同时执行时就会发生死锁 begin transaction update A set value value where id 1
  • 将 JSON 对象和对象列表传递给 ASP.Net 控制器 [重复]

    这个问题在这里已经有答案了 我需要以下方面的帮助 我有这两个模型以及我将在下面使用它们的方法 public class RoleModel public string Name get set public string Descripti
  • 如何在 Java 中同步或锁定变量?

    让我使用这个小而简单的示例 class Sample private String msg null public void newmsg String x msg x public String getmsg String temp ms
  • 网站托管在 IIS 中时无法打开数据库

    当我从 Visual Studio 运行我的网站时 一切正常 现在我正在尝试继续并开始测试多租户部分 因此我必须将我的网站移至 IIS 由于某种原因我无法访问数据库 当我打开需要数据库访问的页面时出现的错误是 无法打开登录请求的数据库 GW
  • 文本列不能存储超过 8000 个字符

    我对此进行了研究 发现textSQL Server 中的列可以存储超过 8000 个字符 但是当我在文本列中运行以下插入时 它只插入 8000 个字符 UPDATE a SET File b Header CHAR 13 CHAR 10 d
  • 将 Leaflet 地图设置为高度:容器的 100%

    请问我们如何将地图 div 设置为其容器的 height 100 我已经在引导模板内容部分中尝试过此操作 但我得到的只是 0px 的高度 甚至 Google Dev 工具也将 map 高度显示为 0px body padding 0 mar
  • 居中 DatePicker 控件

    我正在使用 wpf 工具包中的 datepicker 控件 我需要将日期选择器控件中的内容居中对齐 我怎样才能实现这个目标 尝试VerticalContentAlignment 居中 它不起作用
  • 为什么 jsp:include 参数不可见

    我有完全相同的基本问题关于访问 jsp param 值 https stackoverflow com questions 3698068 jsp include with parameters usage simple question正
  • 获取表中列中的行

    我想从我的表中得到一个特殊的结果 并且我想知道这是可能的 我有一个像这样的表 idA idB val 按此值 idA idB val 1 5 50 1 6 0 1 7 NULL 2 5 100 2 6 12 2 7 0 我想通过这样的格式从