0
我有2個表TableA
和TableB
,這裏是兩個表SQL查詢來合併基於序列行定義
OrderNumber LineSEQNo SequenceNumber CommentText
2145106 0000000001 000 ABB -
2145106 0000000001 001 2" AL. pole 7'8"
而表B如下
SalesOrderNumber LineSEQNo desc1 desc2
2145106 0000000001 ORDER DIDN't NULL
2145106 0000000002 ABB BCC
2145106 0000000003 NULL Customer did NOT get any.
的數據現在我想從TableB
輸出..我的意思是輸出應與TableB
相同。
- 將會有一個
LineSEQNo
(不同的)每行表 TableB.LineSEQNo
將檢查TableA
爲LineSEQNo
。如果它存在於TableA
中,那麼將顯示該LineSEQNo
的SequenceNumber
並且基於序列將CommentText
合併成一行。- 如果
LineSEQNo
不TableA
,然後desc1
和desc2
存在將串聯爲LineSEQNo
所以輸出應該是這樣的:
2145106 0000000001 ABB - 2" AL. pole 7'8"
2145106 0000000002 ABB BCC
2145106 0000000003 Customer did NOT get any.
希望我清楚。
現在的解決方案唯一的解決辦法是,在我這種即將爲WHILE
環..
有沒有其他辦法可以沒有環這個期望的結果?
謝謝你的幫助一切工作都很完美,除了TABLE A ..的文本已經與出現了,那麼評論 CommentText>? –
Mahajan344
@spenzo。 。 。我修復了'for xml path()'。無可否認,我傾向於使用'('')'。但是,正確的方法是分配一個類型並獲取值。請注意,如果這是你的字段的類型,你應該使用'nvarchar()'。這也可以防止諸如「&」被轉入「&」之類的怪異情況。 –
@Spenzo。 。 。如意編程造成的一個錯誤。我一直認爲'TYPE'是'PATH'結構的一個「參數」。實際上,它是「FOR XML PATH」的修飾符。前者總是讓我搞不清語法,直到我查找它,然後查找它,然後才正確。 –