sql - ejemplos - funcion merge en sas
CASO CUANDO muestra error (4)
Estoy usando Microsoft SQL Management Studio y estoy tratando de usar CASE WHEN. Aquí está mi problema, mi código de la siguiente manera:
SELECT CASE WHEN INCIDENT_RK = 52377
THEN CASE_RK = NULL
ELSE CASE_RK
END
)
FROM ABC ;
Lo que quiero hacer es que, cuando INCIDENT_RK es 52377, entonces establezca CASE_RK en NULL, sino que siga la CASE_RK original.
Debería ser bastante directo, sin embargo, hay subrayados rojos debajo de INCIDENT_RK, =, ELSE,) Lo encuentro raro porque hice un CASO CUANDO Hoy temprano y está funcionando bien. A continuación está el código de trabajo:
CASE WHEN CASE_RK NOT BETWEEN 1 AND 2
THEN CASE_RK+75961
ELSE CASE_RK
END
)
FROM ABC
Necesito tu consejo
EDIT 2: También probé el siguiente código pero todavía no tuve suerte:
CASE WHEN INCIDENT_RK = ''52080''
THEN NULL
ELSE CASE_RK
END AS CASE_RK
)
FROM ABC
EDIT 3: Probé este código.
SELECT CASE WHEN INCIDENT_RK = 52080 THEN NULL ELSE CASE_RK END AS CASE_RK FROM ABC
Finalmente puede ejecutar. Sin embargo, solo tengo 1 fila de INCIDENT_RK = 100 pero hay más de 50 CASE_RK está establecido en NULL
La sintaxis de su caso parece ser incorrecta.
Un caso devuelve un enunciado, no asigna el enunciado.
Observe que la diferencia entre su ejemplo que funciona y la que no funciona es aquella en la que no intenta asignar CASE_RK = NULL
Entonces, dependiendo del resto del código de su consulta, debería ser algo en la línea de:
SELECT CASE WHEN INCIDENT_RK = 52377
THEN NULL
ELSE CASE_RK
END AS CASE_RK
FROM ABC
Parece una sintaxis incorrecta en tu consulta. Debe eliminar los corchetes cercanos de su consulta. Intente la siguiente consulta:
SELECT CASE WHEN INCIDENT_RK = 52377
THEN CASE_RK = NULL
ELSE CASE_RK
END
FROM ABC;
Se quitaron las llaves cercanas,
SELECT CASE WHEN INCIDENT_RK = 52377
THEN CASE_RK = NULL
ELSE CASE_RK
END
FROM ABC;
Usted tiene algunas llaves inválidas. Tampoco quiere establecer CASE_RK en NULL, solo quiere mostrar NULL.
SELECT CASE_RK = CASE WHEN INCIDENT_RK = 52377
THEN NULL
ELSE CASE_RK
END
FROM ABC;