所以我正在尝试将CASE应用于我创建的列 但是问题是我在另一个选择中有一个选择 我用那个子查询的值来选择大小写 我应该如何做??
MySwal.fire({
title: <p>Holahola</p>
});
答案 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