SQL select 列有时为空的语句

SQL select statement with column being null sometimes

我想知道我将如何创建一个 SQL select 语句,该语句可能在几个列中有一个可能的空值。下面是一个可能的结果集:

Volume    |  Ticket   |  Hours   |  Rate   |   Amount
              1234        10.5       190        1995
  90                      90         100        9000
              1235        11         190        2090
  90                      90         110        9900

音量与他们上面的票有关。所以第一次显示票时,我们不想显示数量,但我们想显示票号。如果有交易量,我们希望下一行显示它的值,而不是票证。

我拉取的tabletable是Charges。这些是列:

ChargeID, TicketNum, ProductID, Hours, Rate, Amount

其中 ChargeID 是主键。

如果有人有任何想法,他们将不胜感激。

你可以这样做(虽然这是在 Oracle 中..) 不确定为什么要标记此问题 vba ..

  with w_data as ( 
           select 33 volume, 1234 ticket, 10.5 hours, 190 rate, 1995 amount from dual union all
           select 90 volume, 1234 ticket, 90   hours, 100 rate, 9000 amount from dual union all
           select 33 volume, 1235 ticket, 11   hours, 190 rate, 2090 amount from dual union all
           select 90 volume, 1235 ticket, 90   hours, 110 rate, 9900 amount from dual 
        )
  Select case when ticket = lag(ticket) over (partition by ticket order by ticket, volume) then volume else null end new_volume, 
        case when ticket = lag(ticket) over (partition by ticket order by ticket, volume) then null else ticket end new_ticket, 
           hours, rate, amount
    from w_data
  order by ticket, volume
  /

  NEW_VOLUME NEW_TICKET      HOURS       RATE     AMOUNT
  ---------- ---------- ---------- ---------- ----------
                   1234       10.5        190       1995
          90                    90        100       9000
                   1235         11        190       2090
          90                    90        110       9900

  4 rows selected.