填充,因为它是从存储过程到Datatable的数据

时间:2015-07-09 11:25:37

标签: sql sql-server sql-server-2008

将数据从存储过程填充到DataTable时,我遇到了奇怪的行为。

我要填的是:

存储过程的输出:

MINI COMBO   
     Coke Float   

Stuff中通过在MINI COMBO之后添加CHAR(13)和在Coke Float之前添加一些空格来构建。

填写后DataTable反映:

     Coke Float   
MINI COMBO   

这对我来说真的很新,请帮忙。

提前致谢

1 个答案:

答案 0 :(得分:0)

这是一个订购问题。由于各种原因,从存储过程输出的顺序可能随时更改,除非您指定ORDER BY语句。

例如:

SELECT TXNID, ItemName = STUFF( ( SELECT Case When Level > 0 Then Case When 
ItemName like '%(%' Then ','+ItemName Else '( '+ ItemName+' ' End Else CHAR(13) + Space(Spaces * 5) + ItemName+' ' End 
FROM #ARLines_2 x1 WHERE TXNID = x.TXNID Order By Spaces FOR XML PATH(''), TYPE).value('.[1]', 'nvarchar(max)'), 1, 2, '') FROM #ARLines_2 AS x 
GROUP BY ID
ORDER BY ItemName DESC

但我怀疑,您希望在下拉列表中显示某种层次结构顺序。即亲子关系。如果是这种情况,则需要在语句

的顺序中包含某种层次结构标识符