Usuário com melhor resposta
Consultar dados com mascara - SQL Server

Pergunta
-
Tenho a seguinte estrutura:
http://sqlfiddle.com/#!9/29027c4/1
CREATE TABLE PATRIMONIO (
NUM_PATRIMONIO VARCHAR(100),
DESCRICAO_PATRIMONIO VARCHAR(100)
);
INSERT INTO PATRIMONIO
VALUES ('HDT-2725','VW/GOL 1.0 GER IV'),
('HDT-2744','VW/GOL 1.0 GER IV'),
('HDT-2751','VW/GOL 1.0 GER IV'),
('HDT-2764','Fiat Palio Celebration 1.4 Fire Flex 8V 4p'),
('002376','Notebook Dell i5 8GB 1TB')
Com o seguinte select:
SELECT NUM_PATRIMONIO, DESCRICAO_PATRIMONIO FROM PATRIMONIO
Essa não é a estrutura completa da tabela, isso foi apenas um exemplo que trouxe de como os dados estão aparecendo. No momento, eles estão vindo assim:
NUM_PATRIMONIO DESCRICAO_PATRIMONIO
HDT-2725 VW/GOL 1.0 GER IV
HDT-2744 VW/GOL 1.0 GER IV
HDT-2751 VW/GOL 1.0 GER IV
HDT-2764 Fiat Palio Celebration 1.4 Fire Flex 8V 4p
002376 Notebook Dell i5 8GB 1TB
E eu preciso que o retorno seja apenas os veículos que estão com a mascara das placas `XXX-0000`. O banco só possui placas brasileiras, então outros formatos são irrelevantes.
Já tentei procurar alguma função ou até formas de fazer essa consulta no google, mas o que eu sempre acho são pessoas procurando como consultar um cpf sem mascara e por a mascara no momento da consulta. Mas eu não quero por a mascara, eu preciso filtrar os dados que já estão com essa mascara `XXX-0000`.
O banco de dados é SQL Server.quinta-feira, 5 de setembro de 2019 14:28
Respostas
-
Boa tarde,
Layla, experimente fazer uns testes dessa forma:
WHERE NUM_PATRIMONIO LIKE '[A-Z][A-Z][A-Z]-[0-9][0-9][0-9][0-9]'
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Layla Comparin quinta-feira, 5 de setembro de 2019 17:26
quinta-feira, 5 de setembro de 2019 15:33
Todas as Respostas
-
Como é o valor de pesquisa se trata de um campo texto, acho que uma solução para sua consulta seria algo assim: SELECT * FROM PATRIMONIO
WHERE LENGTH(LTRIM(RTRIM(NUM_PATRIMONIO))) = 8
AND NUM_PATRIMONIO LIKE '%-%'quinta-feira, 5 de setembro de 2019 14:39 -
Boa tarde,
Layla, experimente fazer uns testes dessa forma:
WHERE NUM_PATRIMONIO LIKE '[A-Z][A-Z][A-Z]-[0-9][0-9][0-9][0-9]'
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
- Marcado como Resposta Layla Comparin quinta-feira, 5 de setembro de 2019 17:26
quinta-feira, 5 de setembro de 2019 15:33 -
Como é o valor de pesquisa se trata de um campo texto, acho que uma solução para sua consulta seria algo assim: SELECT * FROM PATRIMONIO
WHERE LENGTH(LTRIM(RTRIM(NUM_PATRIMONIO))) = 8
AND NUM_PATRIMONIO LIKE '%-%'Deu erro esse procedimento..
'LENGTH' is not a recognized built-in function name.quinta-feira, 5 de setembro de 2019 17:29 -
Boa tarde,
Layla, experimente fazer uns testes dessa forma:
WHERE NUM_PATRIMONIO LIKE '[A-Z][A-Z][A-Z]-[0-9][0-9][0-9][0-9]'
Espero que ajude
Assinatura: http://www.imoveisemexposicao.com.br
quinta-feira, 5 de setembro de 2019 17:29