tengo algo así como¿Cómo usar los valores de las columnas condicional en la misma instrucción de selección?
(COMPLEX_EXPRESSION_N
gradas durante mucho subconsulta)
select
ID_Operation,
FirstCheck = CASE WHEN (COMPLEX_EXPRESSION_1)= 0 then 0 else 1 end,
SecondCheck = CASE WHEN (COMPLEX_EXPRESSION_2)= 0 then 0 else 1 end,
ThirdCheck = CASE WHEN (COMPLEX_EXPRESSION_3)= 0 then 0 else 1 end,
AllChecksOk = Case WHEN
(FirstCheck + SecondCheck + Third CHeck = 3)
Then 'OK' Else 'No' End
from
AllOperationsTable
¿Es posible utilizar FirstCheck, SecondCheck, ThirdCheck como lo hice en la línea AllChecksOk?
No me preocupa el rendimiento, esto es algo que se ejecuta manualmente una vez al día en un número muy pequeño de registros, solo quiero evitar la creación de vistas, tablas o tablas temporales y mantener todo en una sola sentencia select .
Como altenrative puedo hacer esto, pero hace que la consulta menos legible (como tengo que escribir dos veces cada expresión compleja):
select
ID_Operation,
FirstCheck = CASE WHEN (COMPLEX_EXPRESSION_1)= 0 then 0 else 1 end,
SecondCheck = CASE WHEN (COMPLEX_EXPRESSION_2)= 0 then 0 else 1 end,
ThirdCheck = CASE WHEN (COMPLEX_EXPRESSION_3)= 0 then 0 else 1 end,
AllChecksOk = Case WHEN
(COMPLEX_EXPRESSION_1+ COMPLEX_EXPRESSION_2+
COMPLEX_EXPRESSION_3CHeck = 3) Then 'OK' Else 'No' End
from
AllOperationsTable
CTE hizo el trabajo, no me veía a CROSS APPLY, voy a ponerle un marcador para el futuro. Gracias. – LaBracca