SELECT * FROM financeiro.clientes WHERE (cli_cgcpf) = '64525430321'

15 respostas
juniorsatanas

Pessoal tenho esta tabela :

-- Table: financeiro.clientes

-- DROP TABLE financeiro.clientes;

CREATE TABLE financeiro.clientes
(
  cli_cgcpf character varying(14) NOT NULL,
  cli_nome character varying(80),
  cli_end character varying(80),
  cli_cep character varying(10),
  cli_city character varying(20),
  cli_uf character varying(2),
  cli_contat character varying(40),
  cli_tipo character varying(2),
  cli_areativ character varying(2),
  cli_fone character varying(11),
  cli_fax character varying(11),
  cli_cxpost character varying(5),
  cli_email character varying(80),
  cli_insest character varying(15),
  cli_celular character varying(11),
  doido character varying(50),
  id_serial serial NOT NULL,
  id_serial2 serial NOT NULL,
  CONSTRAINT cliente_pkey PRIMARY KEY (cli_cgcpf)
)
WITH (
  OIDS=FALSE
);
ALTER TABLE financeiro.clientes OWNER TO root;

Só que tem clientes duplicados, clientes com cpf/cnpj igual e nome diferente..

Eu quero selecionar todos os clientes que tenha um cpf salvar em uma nova tabela, selecionar todos clientes que tenhão cnpj e salvar em outra tabela, depois tirar as duplicidades..

Obrigado !

Qual comando para selecionar somente os cpf ?

exemplo : SELECT * FROM financeiro.clientes WHERE (cli_cgcpf) = '[telefone removido]'

15 Respostas

D
:SELECT * FROM financeiro.clientes WHERE (cli_cgcpf)  like  '[telefone removido]'

Tenta assim campos varchar só podem ser comparados com like.

juniorsatanas

NÃO DEU !

não mostrou nada !

R

SELECT cli_cgcpf FROM financeiro.clientes WHERE (cli_cgcpf) = ‘[telefone removido]’

juniorsatanas

Eu quero selecionar todos os clientes que tenhão CPF e não os que tem CNPJ !

[telefone removido]          = 11 números
     64525430245222    =  14 números

Ta tudo no mesmo campos, cnpj mais cpf !

acho que agora fui claro !

obrigado pessoal !

lucas_carvalho100

SELECT * FROM financeiro.clientes WHERE length(cli_cgcpf) = 11.

Espero ter ajudado…

juniorsatanas

DICA: Nenhuma função corresponde com o nome e os tipos de argumentos informados. Você precisa adicionar conversões de tipo explícitas.

********** Erro **********

ERRO: função length(bigint) não existe
SQL state: 42883
Dica: Nenhuma função corresponde com o nome e os tipos de argumentos informados. Você precisa adicionar conversões de tipo explícitas.
Caracter: 33

mudei o tipo de campo para caracteris varis pegou legal

PARA CRIAR UM CAMPO UNIQUE COMO FICA ?

lucas_carvalho100

Que banco vc esta usando?

juniorsatanas

Postgres !

OBRIGADO PEGO FILE… so precisava por o campo CARACTERIS VARIN…

Agora quero evitar duplicidades, UNIQUE !

juniorsatanas

lucas MUITO OBRIGADO !

lucas_carvalho100

É só vc criar um indice no campo…
Aconcelho tb vc a criar um flag falando se o cliente é pessoa fisica ou juridica.

Tipo…

pessoa char(1) = valor esperado F ou J.

Fica mais facil de controlar…

juniorsatanas

alter table nutec.teste add constraint UNIQUESATANAS unique (id)

lucas_carvalho100

juniorsatanas:
alter table nutec.teste add constraint UNIQUESATANAS unique (id)

Blz mas aconcelho tb vc a criar um flag falando se o cliente é pessoa fisica ou juridica.

Tipo…

pessoa char(1) = valor esperado F ou J.

Fica mais facil de controlar…

juniorsatanas

não e melhor por JURIDICA em uma tabela e FÍSICA em outra ?

hoje ta tudo em uma so tabela em um sistema em delphi, que tenho que migrar para java + postgres…

não tenho ideia com fazer isso:

tabela_fisica_juridica ------------------------------------- tabela_fisica
|---------------------------tabela-juridica

1-------------------virar -------------------2

abraço
.

lucas_carvalho100

Cara na minha OPINIÃO de jeito nenhum vc separa isso…

Deixe na mesma tabela … use o flag… é muito mais facil e rapido de vc controlar…

juniorsatanas

Eu concordo com você, totalmente, so que a tabela tem N cliente com mesmo CPF e nome Diferente, N cnpj com nome de Pessoas Fisicas:

ERRO:  não pôde criar índice único "uniquesatanascpf"
DETALHE:  Tabela contém valores duplicados.

Quando rodo o UNIQUE… ele da esse erro…

Ai meu chefe acha melhor criar um ROBÔ para separar e excluir as duplicidades…a tabela em questão tem 2 GB.

VAleu mano !

Criado 23 de julho de 2010
Ultima resposta 23 de jul. de 2010
Respostas 15
Participantes 4