Нет, вам нужно использовать UNION
для объединения запросов, и ORDER BY
должен стоять последним.например,
SELECT firstname, lastname, otherdata
FROM dbo.People
WHERE firstname NOT IN ('john', 'mark')
UNION ALL
SELECT 'John', NULL, NULL
UNION ALL
SELECT 'Mark', NULL, NULL
ORDER BY firstname;
Если вы хотите разместить эти два ряда последними, то вам нужно заказать что-то еще, например:
SELECT firstname, lastname, otherdata, z = 1
FROM dbo.People
WHERE firstname NOT IN ('john', 'mark')
UNION ALL
SELECT 'John', NULL, NULL, z = 2
UNION ALL
SELECT 'Mark', NULL, NULL, z = 3
ORDER BY z, firstname;
Вы можете увидеть милые трюки, где люди будут ставитьзапросите в подзапросе и примените там заказ (с помощью TOP
), но будьте осторожны, это уловка!Это не будет гарантировать порядок внешнего запроса.