Процедура хранения с case

У меня есть этот Сторед Проседуре, где я нуждаюсь в том, чтобы сделать поиски по материнской или отцовской фамилии

Имея в виду, что в моем сверчке они являются обоими, приложенными как фамилии, такой как этой в select

Но сделав это с case, осложняют я, так как у меня не могут быть два поля в единственном условии:

ALTER PROCEDURE [dbo].[IN_obtenerEmplSucEmp1]
    @Rut varchar(18),   
    @Apellidos varchar(100), 
    @codsuc INT,
    @codemp INT

AS

SELECT 
        per_rut_per, 
        per_nom_per, 
        (per_ape_pat+' '+per_ape_mat) AS Apellidos, 
        per_anx_per, 
        per_cor_ele,
        par1.par_des_par as per_emp_per, 
        par2.par_des_par as per_suc_per 
    FROM PER 
    INNER JOIN PAR as par1 ON PAR1.PAR_COD_TAB = 18  AND par1.PAR_COD_PAR = PER_emp_PER
    INNER JOIN PAR AS PAR2 ON PAR2.PAR_COD_TAB = 13  AND PAR2.PAR_COD_PAR = per_suc_per

    where   per_rut_per = CASE @Rut WHEN '' THEN per_rut_per ELSE @Rut END AND
            per_ape_pat like CASE @Apellidos WHEN '' THEN per_ape_pat ELSE @Apellidos+'%' END and   
            per_suc_per = CASE @codsuc WHEN 0 THEN per_suc_per ELSE @CODsuc END and
            per_emp_per = CASE @codemp WHEN 0 THEN per_emp_per ELSE @CODemp END 

Как я могу решать это?

1
задан 12.06.2017, 20:37
1 ответ

Если ты имеешь в виду, который ты хочешь искать en el WHERE из-за материнской или отцовской фамилии, вместо статьи ВСТУПИТЕ В БРАК, ты можешь изменять твою консультацию таким образом:

WHERE (per_ape_pat LIKE '%'+@Apellidos+'%' OR per_ape_mat LIKE '%'+@Apellidos+'%')
1
ответ дан 24.11.2019, 11:59

Теги

Похожие вопросы