我想从桌子上得到一个特殊的结果,我想找出可能的结果!我有一个像这样的表:(idA,idB,val)通过此值:
IDA | IDB | 值
---- + ------- + ----------
1 | 5 | 50
1 | 6 | 0
1 | 7 | 空值
2 | 5 | 100
2 | 6 | 12
2 | 7 | 0
我想通过以下格式从此表中进行选择:
IDA | 5 | 6 | 7
---- + ------- + ------- + -------
1 | 50 | 0 | 空值
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;
输出:
| IDA | 5 | 6 | 7 |
---------------------------
| 1 | 50 | 0 | (null) |
| 2 | 100 | 12 | 0 |
问题内容: 当存在时,是否有可能获得全部列表?是否为此准备了电话,还是我必须编写一个foreach循环,如: 问题答案: Java 8及更高版本: 如果需要确保得到结果,则必须将最后一行更改为: Java 7及以下版本: Java 8之前的标准集合API不支持这种转换。您必须编写一个循环(或将其包装在您自己的“地图”函数中),除非您使用一些更高级的集合API /扩展。 (您的Java代码段中的行正
问题内容: 获取Oracle中所有表的列表? 问题答案: 假设您有权访问DBA_TABLES数据字典视图。如果您没有这些特权但需要它们,则可以请求DBA显式授予您对该表的特权,或者请求DBA授予您该SELECT ANY DICTIONARY特权或SELECT_CATALOG_ROLE角色(这两者都将允许您查询任何数据字典表) )。当然,您可能希望排除某些模式,例如SYS和模式,SYSTEM而这些模
问题内容: 我想创建一个(或一组)所有出现在python列表中的唯一值的列表。我有这样的事情: 我想要以下内容: 我知道对于字符串列表,您只能使用set(aList),但是我无法弄清楚如何在列表列表中解决此问题,因为set(aList)会向我显示错误消息 我该如何解决? 问题答案:
问题内容: 我想要: 在pylab中返回当前图形列表的魔术函数是什么? 网络搜索没有帮助… 问题答案: 编辑:正如MattiPastell的解决方案所示,还有一个更好的方法:使用。
问题内容: 我在文档中找不到与此有关的任何信息,但是如何获得在SQLAlchemy中创建的表的列表? 我使用了类方法来创建表。 问题答案: 所有表都收集在SQLAlchemy MetaData对象的属性中。要获取这些表的名称列表: 如果使用声明性扩展,则可能不是您自己管理元数据。幸运的是,元数据仍然存在于基类中, 如果您试图弄清楚数据库中存在哪些表,甚至还没有告诉SQLAlchemy的表,那么可以
问题内容: 我有一个字典列表,我需要从字典的给定键中获取值的列表(所有字典都具有相同的键)。 例如,我有: 我需要得到1,2,3 当然,我可以通过以下方式获得它: 但是我想找到一种更好的方法。 问题答案: 使用简单的列表推导(如果您确定每个字典都有键): 否则,您需要首先检查是否存在: