Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 上一行号为空时跳过行号_Sql Server_Row Number - Fatal编程技术网

Sql server 上一行号为空时跳过行号

Sql server 上一行号为空时跳过行号,sql-server,row-number,Sql Server,Row Number,当上一行号为空时,我想跳过行号 我的问题如下 select O.Id as orderItemID,Custom, CustomName=(CASE WHEN Custom=1 THEN 'Left' When Custom=2 Then 'Right' Else '' END), RowNumber = (CASE WHEN Custom = '2' THEN NULL ELSE Row_Number() OVER(ORDER BY O.ID) END ) From

当上一行号为空时,我想跳过行号 我的问题如下

select O.Id as orderItemID,Custom,
    CustomName=(CASE WHEN Custom=1 THEN 'Left' When Custom=2 Then 'Right' Else '' END),
    RowNumber = (CASE WHEN Custom = '2' THEN NULL ELSE Row_Number() OVER(ORDER BY O.ID) END )
    From  dbo.OrderItem O 
    left join SubCategory I On O.ItemId=I.ItemId 
    left join ItemType IT On O.Size=IT.TypeId
    where O.OrderId=@OrderId
order by O.Id 
我的输出是

我的期望输出


有人能帮我吗?

您需要使用
行编号()
分区,当Custom=2,然后1或0结束
Custom=2
的行创建一个单独的(隐藏)计数器:

选择O.Id作为orderItemID
,习俗
,CustomName=(当Custom=1时为“左”,当Custom=2时为“左”,否则为“右”,结束)
,RowNumber=CASE(当Custom=2时)然后NULL ELSE ROW_NUMBER()结束(当Custom=2时按CASE分区,然后按O.ID结束订单)结束
来自dbo.OrderItem O
O.ItemId=I.ItemId上的左联接子类别I
LEFT JOIN ItemType On O.Size=IT.TypeId
其中O.OrderId=@OrderId
按O.Id订购

您需要使用
行编号()
分区,当Custom=2,然后1或0结束时,为
Custom=2
的行创建一个单独的(隐藏)计数器:

选择O.Id作为orderItemID
,习俗
,CustomName=(当Custom=1时为“左”,当Custom=2时为“左”,否则为“右”,结束)
,RowNumber=CASE(当Custom=2时)然后NULL ELSE ROW_NUMBER()结束(当Custom=2时按CASE分区,然后按O.ID结束订单)结束
来自dbo.OrderItem O
O.ItemId=I.ItemId上的左联接子类别I
LEFT JOIN ItemType On O.Size=IT.TypeId
其中O.OrderId=@OrderId
按O.Id订购