选择另一个选择内的案例

时间:2019-12-10 21:13:16

标签: mysql sql select case

所以我正在尝试将CASE应用于我创建的列 但是问题是我在另一个选择中有一个选择 我用那个子查询的值来选择大小写 我应该如何做??

MySwal.fire({ 
  title: <p>Holahola</p> 
});

1 个答案:

答案 0 :(得分:2)

您通常会在子查询中移动case表达式:

SELECT
    gc.IDGastosComunes,
    v.IDPropiedad,
    v.Depto,
    v.NombreDueno,
    (
        SELECT CASE u2.IDCategoria
            WHEN 1 THEN 'Convenio'
            WHEN 2 THEN 'Plus'
            WHEN 3 THEN 'Preferente'
            WHEN 4 THEN 'Premium'
            WHEN 5 THEN 'La Serena'
            ELSE ''
        END
        FROM usuarios_tipos u2
        WHERE u2.IDUsuario = v.IDDueno AND u2.IDTipo = 10
    ) AS Categoria
    gc.monto,
    gc.FechaEmisionPago AS Periodo
FROM gastos_comunes gc
JOIN vcartera_propiedades v ON v.IDPropiedad=gc.IDPropiedad
WHERE v.IDGrupo = 1

旁注:这需要进行测试,但是很可能可以将查询重写为使用(LEFT) JOIN而不是内联子查询,这会使语法短得多。看起来像:

SELECT
    gc.IDGastosComunes,
    v.IDPropiedad,
    v.Depto,
    v.NombreDueno,
    CASE u2.IDCategoria
            WHEN 1 THEN 'Convenio'
            WHEN 2 THEN 'Plus'
            WHEN 3 THEN 'Preferente'
            WHEN 4 THEN 'Premium'
            WHEN 5 THEN 'La Serena'
            ELSE ''
    END AS Categoria
    gc.monto,
    gc.FechaEmisionPago AS Periodo
FROM gastos_comunes gc
JOIN vcartera_propiedades v ON v.IDPropiedad=gc.IDPropiedad
LEFT JOIN  usuarios_tipos u2 ON u2.IDUsuario = v.IDDueno AND u2.IDTipo = 10
WHERE v.IDGrupo = 1