简单地说,我有这个SQL语句:
EXEC xp_cmdshell 'tasklist'
我们可以使用order by
或where
订购或过滤结果吗?
谢谢,
答案 0 :(得分:15)
您需要先将结果输出到临时表中。这应该告诉你如何做到
答案 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