【问题标题】:How to write SP for this SCENARIO?如何为这个场景编写 SP?
【发布时间】:2011-06-01 15:09:41
【问题描述】:

我在数据库中有一个这样的表

SlNo
Driver_Id
Sun_StartTime
Sun_EndTime
Mon_StartTime
Mon_EndTime
Tue_StartTime
Tue_EndTime 
Wed_StartTime
Wed_EndTime
Thur_StartTime
Thur_EndTime
Fri_StartTime
Fri_EndTime
Sat_StartTime
Sat_EndTime

以上是我数据库中的字段

但是在检索时我必须像那样检索

Driver_Id | Sun_StartTime  | Sun_EndTime
Driver_Id | Mon_StartTime  | Mon_EndTime
Driver_Id | Tue_StartTime  | Tue_EndTime
Driver_Id | Wed_StartTime  | Wed_EndTime
Driver_Id | Thur_StartTime | Thur_EndTime
Driver_Id | Fri_StartTime  | Fri_EndTime
Driver_Id | Sat_StartTime  | Sat_EndTime

也就是说,我必须将一条记录拆分为 7 条记录 我如何使用存储过程来做到这一点。 请帮我 提前致谢

【问题讨论】:

    标签: asp.net sql-server-2005


    【解决方案1】:

    这样的事情应该会让你朝着正确的方向开始。

    SELECT Driver_Id, Sun_StartTime AS StartTime, Sun_EndTime as EndTime, 1 AS DayOfWeek
        FROM YourTable
        WHERE Driver_Id = @YourDriverId
    UNION ALL
    SELECT Driver_Id, Mon_StartTime AS StartTime, Mon_EndTime as EndTime, 2 AS DayOfWeek
        FROM YourTable
        WHERE Driver_Id = @YourDriverId
    UNION ALL
    ...
    SELECT Driver_Id, Sat_StartTime AS StartTime, Sat_EndTime as EndTime, 7 AS DayOfWeek
        FROM YourTable
        WHERE Driver_Id = @YourDriverId
    ORDER BY DayOfWeek
    

    【讨论】:

      【解决方案2】:
      【解决方案3】:

      您可以使用联合查询来获取此类结果。但是你没有提到 where 子句。

      Create Proc testing
      AS
      
      Select
      driverID, Mon_StartTime,Mon_EndTime From YourTableName
      
      Union
      
      Select
          driverID, Tue_EndTime, Tue_EndTime From YourTableName
      
      Union
      
      Select
          driverID, Wed_StartTime, Wed_EndTime From YourTableName
      
      Union
      
      Select
          driverID, Thur_StartTime, Thur_EndTime From YourTableName
      
      Union
      
      Select
          driverID, Fri_StartTime, Fri_EndTime From YourTableName
      
      Union
      
      Select
          driverID, Sat_StartTime, Sat_EndTime From YourTableName
      
      Union 
      
          Select
          driverID, Sun_StartTime, Sun_EndTime From YourTableName
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多