Получение n-ой строки в mssql - Что означает этот "sq"?

Нужно достать n-й ряд из таблицы. Я нашел этот запрос, который работает точно в соответствии с требованием.

SELECT TOP 1 name FROM (SELECT TOP 9 name FROM master..syslogins ORDER BY name ASC) sq ORDER BY name DESC

Не уверен, на что указывает "sq" в запросе, чтобы я мог настроить его под мое требование.

Может кто-нибудь дать мне знать, что "sq" в приведенном выше запросе указывает на??

Пытался:

SELECT TOP 1 user FROM (SELECT TOP 3 user FROM customers ORDER BY user ASC)sq ORDER BY   user DESC

Ошибка: не указано имя столбца для столбца 1 в sq.

2 ответа

Решение

Используйте: [] для имен столбцов, которые соответствуют ключевым словам

SELECT TOP 1 [user] FROM (SELECT TOP 3 [user] FROM customers ORDER BY user ASC)sq ORDER BY  [user] DESC

"sq" в вашем случае является псевдонимом для встроенного представления. Стандартному использованию псевдонима предшествует ключевое слово "as" (так что в вашем случае это будет переводиться как "как sq ". Псевдоним - это новое имя запроса и должен разделяться запросом как минимум одним пробелом.

Другие вопросы по тегам