SELECT count(*) FROM
(SELECT TOP 20 * FROM (SELECT TOP 20 * FROM (SELECT * FROM Pcms_hr_employee left join pcms_hr_post on Pcms_hr_employee.employee_post = pcms_hr_post.post_code ) AS t0 ORDER BY employee_id ASC) AS t1 ORDER BY employee_id DESC ) AS t2 ORDER BY employee_id
(SELECT TOP 20 * FROM (SELECT TOP 20 * FROM (SELECT * FROM Pcms_hr_employee left join pcms_hr_post on Pcms_hr_employee.employee_post = pcms_hr_post.post_code ) AS t0 ORDER BY employee_id ASC) AS t1 ORDER BY employee_id DESC ) AS t2 ORDER BY employee_id
SELECT TOP 20 * FROM (
SELECT TOP 20 * FROM (
SELECT * FROM
Pcms_hr_employee
LEFT JOIN pcms_hr_post ON employee_post=post_code
) AS t0 ORDER BY employee_id ASC
) AS t1 ORDER BY employee_id DESC
) AS t2 ORDER BY employee_id
在早期的 Microsoft® SQL Server™ 2000 版本中,使用 *= 和 =* 在 WHERE 子句中指定左、右外部联接条件。有时,该语法会导致有多种解释的不明确查询。FROM 子句中指定遵从 SQL-92 的外部联接,不会导致上述不确定性。因为 SQL-92 语法更为精确,所以,本版中未包括有关在 WHERE 子句中使用旧的 Transact-SQL 外部联接语法的详细信息。以后的 SQL Server 版本可能不再支持该语法。任何使用 Transact-SQL 外部联接的语句都应改为使用 SQL-92 语法。SQL-92 标准支持 FROM 或 WHERE 子句中的内部联接规范。WHERE 子句中指定的内部联接不会出现与 Transact-SQL 外部联接语法相同的不确定性问题。
SELECT TOP 20 * FROM (
SELECT TOP 20 * FROM (
SELECT * FROM
Pcms_hr_employee
LEFT JOIN pcms_hr_post ON employee_post=post_code
) AS t0 ORDER BY employee_id ASC
) AS t1 ORDER BY employee_id DESC
) AS t2 ORDER BY employee_id还是不行,:(,报错信息:Column name 't2.employee_id' is invalid in the ORDER BY clause because it is not contained in an aggregate function and there is no GROUP BY clause.
(SELECT TOP 20 * FROM (SELECT TOP 20 * FROM (SELECT * FROM Pcms_hr_employee,pcms_hr_post WHERE employee_post *= post_code ) AS t0 ORDER BY employee_id ASC) AS t1 ORDER BY employee_id DESC ) AS t2 把最后的order by 去掉.
(SELECT TOP 20 * FROM (SELECT TOP 20 * FROM (SELECT * FROM Pcms_hr_employee left join pcms_hr_post on Pcms_hr_employee.employee_post = pcms_hr_post.post_code ) AS t0 ORDER BY employee_id ASC) AS t1 ORDER BY employee_id DESC ) AS t2
去掉最后的order by 也没用,结果还是一样的