【发布时间】:2026-02-05 22:00:01
【问题描述】:
我正在尝试返回由时间段分隔的 SQL 数据库中的费率,例如,我只需要返回费率从初始时间段发生变化的结果; BH(Bank Holiday)、WD(Weekday)、WE(Weekend)供参考...
ClientType Column2 Column 3
Private BH 06:00 £22.00
Private BH 09:00 £25.00
Private BH 17:00 £25.00
Private WD 06:00 £12.00
Private WD 09:00 £14.00
Private WD 17:00 £14.00
Private WE 06:00 £16.00
Private WE 09:00 £16.00
Private WE 17:00 £16.00
Family BH 06:00 £28.00
Family BH 09:00 £28.00
Family BH 17:00 £28.00
Family WD 06:00 £12.00
Family WD 09:00 £12.00
Family WD 17:00 £12.00
Family WE 06:00 £15.00
Family WE 09:00 £15.00
Family WE 17:00 £15.00
所以试图将上述数据返回为,
ClientType Column2 Column 3
Private BH 06:00 £22.00
Private BH 09:00 £25.00
Private WD 06:00 £12.00
Private WD 09:00 £14.00
Private WE 06:00 £16.00
Family BH 06:00 £28.00
Family WD 06:00 £12.00
Family WE 06:00 £15.00
仅在速率随时间段序列发生变化时返回结果。
此外,如果结果仅返回每个时间段之一,例如 Family 类型的客户端,那么它将将该时间段重命名为 BH、WD 和 WE。例如
ClientType Column2 Column 3
Private BH 06:00 £22.00
Private BH 09:00 £25.00
Private WD 06:00 £12.00
Private WD 09:00 £14.00
Private WE £16.00
Family BH £28.00
Family WD £12.00
Family WE £15.00
谢谢
【问题讨论】:
-
您的数据似乎假定数据是有序的,但 SQL 表表示 无序 集。数据是如何排序的?同时标记您正在使用的数据库。
-
它首先按 ClientType 排序,然后是第 2 列,即时间段名称,BH,WD 然后 WE 自然排序,然后在每个 'BH 06:00,BH 09:00 进一步添加时间订购这些。对不起,我应该提到这一点。谢谢