Filtrar campo select

Boa tarde, eu vi alguns tópicos que mostram como alterar o where do campo dinamicamente porem não entendi muito bem.
Eu tenho uma aplicação de consulta que eu filtro os registros que podem aparecer (só mostra os registros com mesmo cnpj exceto se o usuario for o admin ) desse jeito :

[code]$sql = “SELECT GROUP_ID FROM SEC_USERS_GROUPS WHERE LOGIN = ‘[usr_login]’”;
sc_lookup(ds,$sql);

$result_grupos = {ds[0][0]};

if( $result_grupos == 2){
teste();
sc_select_where(add) = “where NU_CNPJ_FORNEC like ‘[glo_cnpj]’”;
};[/code]

e na minha aplicação do tipo formulário eu tenho um campo select que me lista os meus fornecedores que esta assim :

SELECT CODIGO, NM_FORNEC FROM GRCD_FORNEC ORDER BY NM_FORNEC
se eu adicionar a clausula where ele me lista somente os fornecedores com o mesmo cnpj :

WHERE NU_CNPJ_FORNEC LIKE  '[glo_cnpj]'

porem o admin não consegue olhar nem um.
Como eu faria para que assim como na consulta o admin pudesse ver todos os fornecedores e os outros só o fornecedor com mesmo cnpj.
Tem algum campo que eu possa fazer um if igual o da consulta ?

Você pode fazer assim:

WHERE NU_CNPJ_FORNEC LIKE ‘[glo_cnpj]’ OR [usr_login] = ‘admin’

Ou liberar o acesso para todos os usuários com acesso de administrador

WHERE NU_CNPJ_FORNEC LIKE ‘[glo_cnpj]’ OR [usr_priv_admin] = ‘Y’

E outra forma seria criar uma tabela de fornecedores x usuários, assim você controlaria quais os cadastros de fornecedores que cada usuário poderá acessar.