sql - 动态透视未知行数 - Sql View
问题描述
我正在使用 SQL 从下表中创建数据库视图。
ItemCode |BcdName |BcdCode |
------------------------|------------------|-------------|
03616006.ERA |EAS |00060914ER |
03616006.ERA |EAN |8053379025831|
02660402.ERA |EAS |00060936ER |
02660402.ERA |EAN |8053379026227|
02660402.ERA |EANBULK |00060936ET |
我需要旋转 BcdName(对于未知数量的列)并获得以下结果:
ItemCode |EAN |EAS |EANBULK |
------------------------|------------------|-------------|-------------|
03616006.ERA |8053379025831 |00060914ER | |
02660402.ERA |8053379026227 |00060936ER |00060936ET |
在此处找到的解决方案:sql server 2012中的动态数据透视问题不适用于表视图。
解决方案
如果您愿意接受带有“警告/未定义”列的已定义列
例子
Select *
From (Select ItemCode
,Item = case when [BcdName] in ('EAN','EAS','EANBULK','EASBULK') then BcdName else 'Empty' end
,Value = [BcdCode]
From YourTable
) src
Pivot (max(Value) for Item in ([EAN],[EAS],[EANBULK],[EASBULK],[EMPTY]) ) Pvt
退货
ItemCode EAN EAS EANBULK EASBULK EMPTY
02660402.ERA 8053379026227 00060936ER 00060936ET NULL SomeValue
03616006.ERA 8053379025831 00060914ER NULL NULL NULL
推荐阅读
- robotframework - 使用 Robot 和 RequestsLibrary 检查站点是否已启动
- uikit - 如何在 iOS 13 的导航控制器中初始隐藏搜索栏?
- django - Django 迁移没有推送到 Heroku
- postgresql - 可变长度路径查询永远运行,但当边缘是双向时立即执行
- javascript - 如何将'svg'格式的icone添加到SweetAlert for Bootstrap?
- python - pip 安装错误:需要 Microsoft Visual C++ 10.0
- java - AssertJ 将提取的字段转换为 Map
- r - R问题:如何计算曲线下面积相对于增加?
- environment-variables - 想知道如何让我的 ENV 变量进入主管
- php - Nginx 不执行 php