Wilson, primeiro : vc não disse (ao menos até onde eu vi) a versão de 
banco, mas na 9i onde testei ele ** não ** deixa vc usar alias de 
colna no WHERE, que é o que vc está tentando fazer no select 
original :


SELECT A.NOME, A.CPF, (SUBSTR(A.TIP_DEB_DESP, 0, 4) AS C_CUSTO
 FROM DEST_ORDEM_SUP A
 WHERE A.COD_CLI > 100
 AND C_CUSTO BEETWEEN '10' AND '500' --// Aqui ocorre o Erro

=> meu teste :

[EMAIL PROTECTED]:SQL>@Desc emp
 Nome                                      Nulo?    Tipo
 ----------------------------------------- -------- ------------------
----------
 EMPNO                                     NOT NULL NUMBER(4)
 ENAME                                              VARCHAR2(10)
 JOB                                                VARCHAR2(9)
 MGR                                                NUMBER(4)
 HIREDATE                                           DATE
 SAL                                                NUMBER(7,2)
 COMM                                               NUMBER(7,2)
 DEPTNO                                             NUMBER(2)

[EMAIL PROTECTED]:SQL>select empno, substr(ename, 1, 1) as c_custo
  2  from emp where c_custo between 'A' and 'B';
from emp where c_custo between 'A' and 'B'
               *
ERRO na linha 2:
ORA-00904: nome inválido de coluna


[EMAIL PROTECTED]:SQL>ed
Gravou arquivo afiedt.buf

  1  select empno, substr(ename, 1, 1) as c_custo
  2* from emp where substr(ename, 1, 1) between 'A' and 'B'
[EMAIL PROTECTED]:SQL>/

             EMPNO C
------------------ -
              7499 A
              7698 B
              7876 A
              7777 A
==> segunda coisa, CHAR é armazenado sem nenhum trimming de espaços, 
e CHAR(25) significa SEMPRE 25 caracteres armazenados, mesmo que se 
digite menos, será que vc não tem ESPAÇOS antes ou depois dos 
caracteres ? Peça um SELECT A.NOME, A.CPF, (SUBSTR(A.TIP_DEB_DESP, 0, 
4) , '*' || (SUBSTR(A.TIP_DEB_DESP, 0, 4) || '!' pra ver o que vem...

Essas são as principais suspeitas...

[]s

 Chiappa

--- Em oracle_br@yahoogrupos.com.br, "Wilson Ribeiro" <[EMAIL PROTECTED]> 
escreveu
>
> Chiappa, o campo do qual faço o SUBSTR, é do tipo Char(23)
> 
> []'s
> 
> Wilson
> 
> -----Mensagem Original----- 
> De: "jlchiappa" <[EMAIL PROTECTED]>
> Para: <oracle_br@yahoogrupos.com.br>
> Enviada em: quarta-feira, 29 de março de 2006 16:57
> Assunto: [oracle_br] Re: Uma Duvida sobre select
> 
> 
> Wilson, será que, tal como dito na msg
> http://br.groups.yahoo.com/group/oracle_br/message/70577,  Re:
> conversão implicita de dados não funciona , e em algumas anteriores,
> vc não está passando datatypes DIFERENTES na comparação ?? 
Exatamente
> QUAL é o datatype dessa coluna C_CUSTO na tabela ??? As '' só devem
> ser usadas se for datatype caracter (varchar2, normalmente).
> 
> []s
> 
>  Chiappa
> 
> --- Em oracle_br@yahoogrupos.com.br, "Fre Cunha" <[EMAIL PROTECTED]>
> escreveu
> >
> > Wilson tenta assim:
> >
> > SELECT A.NOME, A.CPF, (SUBSTR(A.TIP_DEB_DESP, 0, 4) AS C_CUSTO
> > FROM DEST_ORDEM_SUP A
> > WHERE A.COD_CLI > 100
> > AND SUBSTR(A.TIP_DEB_DESP, 0, 4) BEETWEEN '10' AND '500'
> >
> > Ao inves do alias o proprio substr
> >
> > --- Em oracle_br@yahoogrupos.com.br, "Wilson Ribeiro" 
<[EMAIL PROTECTED]>
> > escreveu
> > >
> > > Senhores, tenho o seguinte select numa base oracle10g:
> > >
> > > SELECT A.NOME, A.CPF, (SUBSTR(A.TIP_DEB_DESP, 0, 4) AS C_CUSTO
> > > FROM DEST_ORDEM_SUP A
> > > WHERE A.COD_CLI > 100
> > >   AND C_CUSTO BEETWEEN '10' AND '500'  --// Aqui ocorre o Erro,
> ele
> > não
> > > deixa comparar esse campo
> > >
> > > Já tentei colocar assim:
> > > (SUBSTR(A.TIP_DEB_DESP, 0, 4) AS A.C_CUSTO
> > > FROM DEST_ORDEM_SUP A
> > > WHERE A.COD > 100
> > >   AND A.C_CUSTO BEETWEEN '10' AND '500'
> > >
> > > Mas ele também não aceita, como resolver essa questão?
> > >
> > > grato
> > >
> > > - - - - - - - - - - -
> > > [ ]'s
> > >
> > > Wilson Ribeiro
> > > [EMAIL PROTECTED]
> > >
> >
> 
> 
> 
> 
> 
> 
> 
> --------------------------------------------------------------------
------------------------------------------------------
> Atenção! As mensagens deste grupo são de acesso público e de 
inteira 
> responsabilidade de seus remetentes.
> Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/
> --------------------------------------------------------------------
------------------------------------------------------
__________________________________________________________________
> 
> Este Grupo recebe o apoio da SQL Magazine - 
www.devmedia.com.br/sqlmagazine
> __________________________________________________________________
> O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, 
tenha o 
> link do mesmo para evitar trafego(pedidos) desnecessário.
> Links do Yahoo! Grupos
>







--------------------------------------------------------------------------------------------------------------------------
Atenção! As mensagens deste grupo são de acesso público e de inteira 
responsabilidade de seus remetentes.
Acesse: http://www.mail-archive.com/oracle_br@yahoogrupos.com.br/ 
--------------------------------------------------------------------------------------------------------------------------__________________________________________________________________

Este Grupo recebe o apoio da SQL Magazine - www.devmedia.com.br/sqlmagazine 
__________________________________________________________________
O grupo Oracle_br não aceita anexos. Quando oferecer algum arquivo, tenha o 
link do mesmo para evitar trafego(pedidos) desnecessário. 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/oracle_br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 


Responder a