funcion ejemplos sql sas

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;