dbo.buscar_padron_dni_sexo

Description

Properties

Name Value
ANSI Nulls ON

True

Quoted Identifier ON

True

Encrypted

False

Execute As
Assembly

Parameters

2
Name Data Type Length Description
@numero varchar 13
@sexo varchar 1

SQL Script

Copy
SET QUOTED_IDENTIFIER, ANSI_NULLS ON
GO
-- [buscar_padron_dni_sexo] '22574574','M'
-- [buscar_padron_dni_sexo] '59144','M'
-- [buscar_padron_dni_sexo] '59144','F'

CREATE OR ALTER PROCEDURE dbo.buscar_padron_dni_sexo
@numero varchar(13),
@sexo  varchar(1)
AS
BEGIN
    SET NOCOUNT ON;
 declare @sexo_contrario char(1) = iif(@sexo='M','F','M')
 BEGIN
      declare @numero2 char(13) = @numero
   if (len(@numero) < 8) set @numero2 =  RIGHT('00000000'+@numero,8)
   if (select COUNT(*) 
    from padrones 
    where (cuerpo_clave = @numero or cuerpo_clave = @numero2)
       and identificacion like '2%' 
    and habilitado = 1
    and (sexo = @sexo)) = 0 

   select top 1 identificacion, nombre_persona, id_padron, 
   iif(isnull(padrones.nombres,'') = '', 
   upper(SUBSTRING(padrones.nombre_persona,1,(select CHARINDEX(' ',padrones.nombre_persona))-1)),upper(padrones.apellidos)) as apellidos, 
   iif(isnull(padrones.nombres,'') = '', 
   upper(rtrim(SUBSTRING(padrones.nombre_persona,(select CHARINDEX(' ',padrones.nombre_persona)+1),1000))), upper(padrones.nombres)) as nombres
   from padrones 
     where (cuerpo_clave = @numero or 
            cuerpo_clave = @numero2)
       and identificacion like '2%' 
    and habilitado = 1
    --and sexo is null 
    and isnull(sexo,'') != @sexo_contrario
    order by identificacion

   else 

   select top 1 identificacion, nombre_persona, id_padron, 
   iif(isnull(padrones.nombres,'') = '', 
   upper(SUBSTRING(padrones.nombre_persona,1,(select CHARINDEX(' ',padrones.nombre_persona))-1)),upper(padrones.apellidos)) as apellidos, 
   iif(isnull(padrones.nombres,'') = '', 
   upper(rtrim(SUBSTRING(padrones.nombre_persona,(select CHARINDEX(' ',padrones.nombre_persona)+1),1000))), upper(padrones.nombres)) as nombres
   from padrones 
     where (cuerpo_clave = @numero or 
            cuerpo_clave = @numero2)
       and identificacion like '2%' 
    and habilitado = 1
    and (sexo = @sexo) 
    order by identificacion

 END
END

GO

Depends On

1

Used By

No items found