gpt4 book ai didi

sql - 连接名称与模式匹配的表

转载 作者:行者123 更新时间:2023-11-29 13:00:28 24 4
gpt4 key购买 nike

我正在尝试编写一个查询,我想在其中连接名称与特定模式匹配的所有表。

示例

我有 12 个表(每个月一个)包含每日温度值,我想返回任何日期范围内的温度(例如 1/26/2014-3/5/2014)。

我的表以 temperature_m01temperature_m02、...、temperature_m12 模式命名。

我可以通过显式写出每个连接来简单地将所有表连接在一起,但我想要一种更简洁的方式来暗示我想连接所有表 temperature_m*

一旦我知道如何做到这一点,我想我可以添加一些额外的约束,例如只加入我需要范围内的月份的表,这可能会带来轻微的改进。


到目前为止,我认为最好的方法是使用 python 为我编写查询,但这似乎也不是特别干净。

最佳答案

这通常是一种反模式,您应该有一个包含指示月份的字段的表。

但是,您可以创建一个 View 来组合您的 12 个表并查询它,就好像它是您所有的表一样...

CREATE VIEW temperature_all AS (
SELECT 01 AS month_id, * FROM temperature_m01
UNION ALL
SELECT 02 AS month_id, * FROM temperature_m02
UNION ALL
SELECT 03 AS month_id, * FROM temperature_m03
UNION ALL
SELECT 04 AS month_id, * FROM temperature_m04
UNION ALL
SELECT 05 AS month_id, * FROM temperature_m05
UNION ALL
SELECT 06 AS month_id, * FROM temperature_m06
UNION ALL
SELECT 07 AS month_id, * FROM temperature_m07
UNION ALL
SELECT 08 AS month_id, * FROM temperature_m08
UNION ALL
SELECT 09 AS month_id, * FROM temperature_m09
UNION ALL
SELECT 10 AS month_id, * FROM temperature_m10
UNION ALL
SELECT 11 AS month_id, * FROM temperature_m11
UNION ALL
SELECT 12 AS month_id, * FROM temperature_m12
);

SELECT * FROM temperature_all WHERE your_date_field BETWEEN '2014-01-26' AND '2014-03-05';

这类似于分区的工作方式。

关于sql - 连接名称与模式匹配的表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31943813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com