In Oracle, SQL Serverand PostreSQL 8.4:
SELECT ROW_NUMBER() OVER (ORDER BY name)
FROM users
WHERE deleted = 0
In MySQL:
SELECT @r := @r + 1 AS rn
FROM (
SELECT @r := 0
) vars, users
WHERE deleted = 0
ORDER BY
name
In PostgreSQL 8.3:
SELECT num, (arr[num]).*
FROM (
SELECT generate_series(1, array_upper(arr, 1)) AS num, arr
FROM (
SELECT ARRAY
(
SELECT users
FROM users
ORDER BY
name
) AS arr
) q
) q2
source
share