我可以使用Order by对存储过程结果进行排序吗?

时间:2010-10-26 12:49:47

标签: tsql stored-procedures

简单地说,我有这个SQL语句:

EXEC xp_cmdshell 'tasklist' 

我们可以使用order bywhere订购或过滤结果吗?

谢谢,

4 个答案:

答案 0 :(得分:15)

您需要先将结果输出到临时表中。这应该告诉你如何做到

Insert results of a stored procedure into a temporary table

答案 1 :(得分:10)

我检查了jamietre链接,这是完整的答案:

Create table  #MyTempTable
(output varchar(max))

INSERT INTO #MyTempTable
EXEC xp_cmdshell 'tasklist' 

select * from #MyTempTable where output like 'ie%' order by output 

感谢所有人......

答案 2 :(得分:2)

不直接。您可以将exec插入临时表或表变量,然后按

进行排序

答案 3 :(得分:0)

多次运行上述查询时,您可能会遇到此错误:There is already an object named '#MyTempTable' in the database.

为了缓解这种情况,您可以在创建 DROP IF EXISTS 之前使用如下所示的 temp table 语句。

IF OBJECT_ID(N'tempdb..#MyTempTable') IS NOT NULL
BEGIN
DROP TABLE #MyTempTable
END
CREATE TABLE #MyTempTable
(OUTPUT VARCHAR(max))

INSERT INTO #MyTempTable
EXEC xp_cmdshell 'tasklist' 

SELECT * FROM #MyTempTable WHERE OUTPUT like 'ie%' ORDER BY OUTPUT