Меня удивляет, что вы звоните [sheet1 $] напрямую, без ссылки на какой-либо связанный сервер.
Вот 2 возможных подхода:
Использование связанного сервера
Сначала создайте связанный сервер для доступа к данным Excel, как показано ниже:
(Я предполагаю, что у вас уже есть JET или ACE провайдер для Excel)
exec sp_addLinkedServer @server='ExcelLnkdServr',
@srvproduct='ACE 12.0',
@provider='Microsoft.ACE.OLEDB.12.0',
@datasrc='\\sysdev\loadExcel.xlsx',
@provstr='Excel 12.0;HDR=Yes';
/* If the above creation is successful, you can see a listing when use SP_LINKEDSERVERS in SSMS. Now you can query the sheet using order by as below: */
select * from ExcelLnkdServr...[Sheet1$]
order by 1 asc, 2 desc
Использование Adhoc Queries
Вы можете OPENROWSET, OPENDATASOURCE или OPENQUERY, как показано ниже: (Второй вариант не требует создания связанного сервера)
select * from openquery(ExcelLnkdServr, 'SELECT * FROM [Sheet1$] order by 1 asc, 3 desc')
SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0;Database=\\sysdev\loadExcel.xlsx;HDR=Yes','Select * from [Sheet1$] order by 1 asc')