Search code examples
sqlsybasesap-asesybase-asa

Select TOP 1 * from Table Fails in Sybase Procedure


Am trying to Fetch Only one record from the Sybase Table without using the RowCount Function, even though "WHERE Condition" returns multiple results.

SELECT TOP 1 EMPLOYEE_NAME FROM EMPLOYEES WHERE EMPLOYEEID > 50

Runs Successfully with one Record Only,

However

SELECT TOP 1 EMPLOYEE_NAME FROM EMPLOYEES WHERE EMPLOYEEID > 50

fails, when written inside a Sybase Procedure as a Sub Query


Solution

  • Top is supported only in outer query only, here is the link

    For ordered data I am using having cause instead Top 1 in Sybase, like:

    SELECT  EMPLOYEE_NAME FROM EMPLOYEES WHERE EMPLOYEEID > 50 HAVING EMPLOYEEID = MIN(EMPLOYEEID)
    

    I hope it helps a bit. GL!