首頁  >  問答  >  主體

SQL - 當lineid為'01'時,使用newid,否則使用id

我的表中有此類資料

行號 價格 €
01 100.00
02 200.00
01 10.34
01 311.12
01 14.33
02 36.44
03 89.70
04 11.33

我希望我的輸出是這樣的

文件 行號 價格 €
1 01 100
1 02 200.00
2 01 10.34
3 01 311.12
4 01 14.33
4 02 36.44
4 03 89.70
4 04 11.33

它的發票資料以及每行具有 lineid='01' 的資料意味著該資訊適用於不同的發票,因此我必須使用新的 documentID 對其進行標記,我希望您幫助我使用命令創建它。 < /p>

這可能很簡單,但我在這裡像瘋子一樣搜索,但找不到解決方案。

編輯:是的,我想要的是「每次 lineid 等於 01 時遞增 docid」

P粉394812277P粉394812277180 天前379

全部回覆(1)我來回復

  • P粉648469285

    P粉6484692852024-04-03 09:50:47

    您可以使用如下所示的運行計數(假設這是您正在談論的 MS SQL)

    SELECT ROW_NUMBER() over(partition by [LineId] order by [LineId]) as DocId,
          [LineId],
          [Price]
      FROM [StackOverflow].[dbo].[RunningCount] order by [LineId]

    回覆
    0
  • 取消回覆