Porque não consigo usar o substring?
Pessoal estou usando o firebird e não sei como fazer este substring funcionar
Na verdade quero comparar duas tabelas com o numero do cnpj, só que uma tem ponto e o traço separando e a outra não tem
Ou seja o que esta na tabela B esta com mascara e tenho que retira-la para fazer o where funcionar, mais apenas na hora de comparar, e não retirar (apagar da tabela)
select * from empresa where substring(nrcgc from 12 for 4) = 0001
Na verdade quero comparar duas tabelas com o numero do cnpj, só que uma tem ponto e o traço separando e a outra não tem
select a.*, b.nrcgc from funcionarios a, empresa b where b.nrcgc = a.cnpj
Ou seja o que esta na tabela B esta com mascara e tenho que retira-la para fazer o where funcionar, mais apenas na hora de comparar, e não retirar (apagar da tabela)
Adriano_servitec
Curtidas 0
Respostas
Adriano_servitec
03/12/2008
Ja arrumei, meu IBExpert estava com problemas,mostrando o seguinte erro:
Depois que eu conectei o ibexpert de novo consegui fazer como precisava
Mais tenho um problema e não tenho idéia ainda como resolver
Alem de CNPJ tenho CEI com mascaras assim
202.120.410-17
Como resolver isso?
Será que tem como fazer por um case? Ou iIf?
Outra pergunta, Pq simplesmente o IBExpert mostrava o erro acima citado?
Grato pela ajuda de todos.
Unsuccessful execution caused by system error that does not preclude successful execution of subsequent statements.
invalid transaction handle (expecting explicit transaction start).
Depois que eu conectei o ibexpert de novo consegui fazer como precisava
select a.*, b.nrcgc from funcionarios a, empresa b where ( substring(b.nrcgc from 1 for 2)|| substring(b.nrcgc from 4 for 3)|| substring(b.nrcgc from 8 for 3)|| substring(b.nrcgc from 12 for 4)|| substring(b.nrcgc from 17 for 2) ) = a.cnpj
Mais tenho um problema e não tenho idéia ainda como resolver
Alem de CNPJ tenho CEI com mascaras assim
202.120.410-17
Como resolver isso?
Será que tem como fazer por um case? Ou iIf?
Outra pergunta, Pq simplesmente o IBExpert mostrava o erro acima citado?
Grato pela ajuda de todos.
GOSTEI 0
Adriano_servitec
03/12/2008
Algo tipo assim
Código:
Sei que isso não funciona, mais preciso de alguma idéia, alguém pode me ajudar?
Código:
select a.*, b.nrcgc, case when (b.nrcgc < 18) then substring(b.nrcgc from 1 for 3)|| substring(b.nrcgc from 5 for 3)|| substring(b.nrcgc from 9 for 3)|| substring(b.nrcgc from 12 for 2) else substring(b.nrcgc from 1 for 2)|| substring(b.nrcgc from 4 for 3)|| substring(b.nrcgc from 8 for 3)|| substring(b.nrcgc from 12 for 4)|| substring(b.nrcgc from 17 for 2) end as TCnpj_CEI from funcionarios a, empresa b where TCnpj_CEI = a.cnpj
Sei que isso não funciona, mais preciso de alguma idéia, alguém pode me ajudar?
GOSTEI 0
Adriano_servitec
03/12/2008
sobe
GOSTEI 0
Luiz Henrique
03/12/2008
Adriano, bl
cara, por que voce nao cria uma UDF tipo SONUMERO(b.nrcgc) para trazer somente numeros...
cara, por que voce nao cria uma UDF tipo SONUMERO(b.nrcgc) para trazer somente numeros...
GOSTEI 0
Adriano_servitec
03/12/2008
[quote:2c88687064=´Luiz Henrique´]Adriano, bl
cara, por que voce nao cria uma UDF tipo SONUMERO(b.nrcgc) para trazer somente numeros...[/quote:2c88687064]Ola Luiz Henrique, blz, bom amigo, não queria usar UDF, pensei em alguma função do FB 2.0 tipo TRIM ou outro, mais não consegui ainda :D
Obrigado amigo.
cara, por que voce nao cria uma UDF tipo SONUMERO(b.nrcgc) para trazer somente numeros...[/quote:2c88687064]Ola Luiz Henrique, blz, bom amigo, não queria usar UDF, pensei em alguma função do FB 2.0 tipo TRIM ou outro, mais não consegui ainda :D
Obrigado amigo.
GOSTEI 0
Luiz Henrique
03/12/2008
blz, Adriano
?
para uma consulta deste tipo, no SQL, penso que nao tem escape de uma funcao externa, quando não existe dentro do Banco.
?
para uma consulta deste tipo, no SQL, penso que nao tem escape de uma funcao externa, quando não existe dentro do Banco.
GOSTEI 0
Adriano_servitec
03/12/2008
[quote:418990291f=´Luiz Henrique´]blz, Adriano
?
para uma consulta deste tipo, no SQL, penso que nao tem escape de uma funcao externa, quando não existe dentro do Banco.[/quote:418990291f]E ai Luiz Henrique, blz.
Ok entendi, mais não queria usar por não saber como criar a UDF e também como chama-la no banco. Então continuo parado nisso ainda.
Obrigado pela ajuda amigo.
?
para uma consulta deste tipo, no SQL, penso que nao tem escape de uma funcao externa, quando não existe dentro do Banco.[/quote:418990291f]E ai Luiz Henrique, blz.
Ok entendi, mais não queria usar por não saber como criar a UDF e também como chama-la no banco. Então continuo parado nisso ainda.
Obrigado pela ajuda amigo.
GOSTEI 0