如何创建包含自定义单列多行数据的视图或表?
创建含自定义单列多行值的视图
你当前的SQL语句会把[1,2,3,4,5,6,7,8]作为单个值返回,最终视图只会有1行数据,不符合你要每行一个值的需求。下面是几种正确的实现方式:
通用兼容写法(适配多数数据库)
通过UNION ALL逐个返回每个值,每个SELECT对应一行:
CREATE VIEW My_view AS SELECT '1' AS numbers UNION ALL SELECT '2' UNION ALL SELECT '3' UNION ALL SELECT '4' UNION ALL SELECT '5' UNION ALL SELECT '6' UNION ALL SELECT '7' UNION ALL SELECT '8';
如果需要非数字值,直接替换单引号里的内容即可,比如'apple'、'2024-01-01'这类任意类型值。
简化写法(支持VALUES子句的数据库:PostgreSQL/MySQL 8.0+/SQL Server等)
用VALUES子句批量生成行,代码更简洁:
CREATE VIEW My_view AS SELECT numbers FROM (VALUES ('1'), ('2'), ('3'), ('4'), ('5'), ('6'), ('7'), ('8')) AS t(numbers);
同样,括号内的元素可以替换为你需要的任意值,无需修改其他部分。
内容的提问来源于stack exchange,提问作者lalka
相关产品推荐
相关产品推荐

