sql - 填充每个类别的值列表
问题描述
我提取下表:
SELECT NAME FROM TABLE
NAME
A-1
A-1
A-1
A-2
A-2
A-2
A-2
我有值列表
['value_1', 'value_2', 'value_3', 'value_4', 'value_5',]
应该为每个唯一名称填充:
NAME VALUES
A-1 value_1
A-1 value_2
A-1 value_3
A-1 value_4
A-1 value_5
A-2 value_1
A-2 value_2
A-2 value_3
A-2 value_4
A-2 value_5
如何在 SQL 中完成?VALUES
作为常量输入,而不是从任何其他表中输入
解决方案
如果值列表实际上包含在另一个表中,那么交叉连接将在这里工作:
SELECT
n.name,
v.value
FROM names n
CROSS JOIN vals v
ORDER BY
n.name,
v.value;
数据:
WITH names AS (
SELECT 'A-1' AS name UNION ALL
SELECT 'A-2'
),
vals AS (
SELECT 'value_1' AS value UNION ALL
SELECT 'value_2' UNION ALL
SELECT 'value_3' UNION ALL
SELECT 'value_4' UNION ALL
SELECT 'value_5'
)
演示
推荐阅读
- jquery - Jquery - 我可以用什么代替 parent()
- php - Laravel 从关系的关系表中获取数据并选择列?
- android - 从 recyclerview 中删除所有卡片视图,然后添加新卡片视图 - 添加相同的卡片视图
- android - 如何整体滚动android recyclerView而不是基于元素的焦点?
- java - 使用java中的while循环将用户输入转换为星号之类的密码
- docker - rm -rf 通过 Bitbucket 管道在容器内
- angularjs - 使用用户脚本将新的 AngularJS 控制器添加到主页
- processing - 处理 如何根据草图中的位置改变颜色?
- node.js - 如何在没有额外库的情况下在 linux 和/或 windows 中解压缩 zip 文件?
- javascript - Browsersync 在 Webpack 4 中随机崩溃/冻结?