Я собираюсь выйти на конечность здесь, так как я не уверен, какой вариант SQL вы используете.Обычно вы не можете использовать псевдоним столбца в предложении WHERE
.Вверху головы я вижу три варианта:
Вариант 1 - использовать «табличное выражение» для получения истинного имени столбца из псевдонима:
select * from (
Select usname as Name, ususer as Username, usseclevel as Default_Level,
usglsecl as GL_SecurityLevel, aoopid, aoseclevel
Case When aoauopid >=00500 and aoAuOpID <10000 then case when
usglsecl>=aoseclevel then 'Authorized' else 'Unauthorized' end END AS PERM
from library.file join library.file on usseclevel>=aoseclevel
WHERE ususer NOT IN('*ALL','daffron')
) x
WHERE PERM NOT IN('Unauthorized,'null')
ORDER BY ususer
Вариант 2 - использовать CTE (общее табличное выражение):
with x as (
Select usname as Name, ususer as Username, usseclevel as Default_Level,
usglsecl as GL_SecurityLevel, aoopid, aoseclevel
Case When aoauopid >=00500 and aoAuOpID <10000 then case when
usglsecl>=aoseclevel then 'Authorized' else 'Unauthorized' end END AS PERM
from library.file join library.file on usseclevel>=aoseclevel
WHERE ususer NOT IN('*ALL','daffron')
)
select * from x
WHERE PERM NOT IN('Unauthorized,'null')
ORDER BY ususer
Вариант 3 - повторить весь CASE снова в предложении WHERE (вместо PERM):
Select usname as Name, ususer as Username, usseclevel as Default_Level,
usglsecl as GL_SecurityLevel, aoopid, aoseclevel
Case When aoauopid >=00500 and aoAuOpID <10000 then case when
usglsecl>=aoseclevel then 'Authorized' else 'Unauthorized' end END AS PERM
from library.file join library.file on usseclevel>=aoseclevel
WHERE ususer NOT IN('*ALL','daffron')
and Case When aoauopid >=00500 and aoAuOpID <10000 then case when
usglsecl>=aoseclevel then 'Authorized' else 'Unauthorized' end END
NOT IN('Unauthorized,'null')
ORDER BY ususer