条件如果 sql

爱德华

我有这个查询

SELECT 
    SI_Num_Inventario = COALESCE (t.SI_Num_Inventario, c.SI_Num_Inventario),
    SI_Ubicacion = COALESCE(t.SI_Ubicacion, c.SI_Ubicacion),
    SI_Ubicacion_Fisica = COALESCE(t.SI_Ubicacion_Fisica, c.SI_Ubicacion_Fisica),
    SI_Num_Articulo = COALESCE(t.SI_Articulo, c.SI_Num_Articulo),
    NULL,
    SI_Num_Conteo = COALESCE(cs.SI_Num_Conteo,2),
    GETDATE(),
    'Admin',
    c.SI_OV 
FROM 
    SI_Inventario_Teorico_QAD t
FULL JOIN 
    SI_Conteo c ON t.SI_Articulo = c.SI_Num_Articulo
                AND t.SI_Ubicacion = c.SI_Ubicacion 
INNER JOIN 
    SI_Maestro_Ref_QAD m ON t.SI_Articulo = m.SI_Num_Articulo
                         OR c.SI_Num_Articulo = m.SI_Num_Articulo
FULL JOIN 
    SI_Consecutivo cs ON c.SI_Num_Inventario = cs.SI_Num_Inventario
                      AND cs.SI_Estado = 0
WHERE 
    c.SI_Num_Articulo = 201423 OR t.SI_Articulo = 201423

我想告诉你,如果 c.SI_OV 为 NULL INSERT THIS `INSERT INTO`

IF c.SI_OV IS NULL
    INSERT INTO SI_Conteo(SI_Num_Inventario, SI_Ubicacion,SI_Num_Articulo, SI_Cantidad,SI_Num_Conteo,SI_Fecha_Conteo, SI_Usuario,SI_OV)

如果它不是 NULL 插入我这个其他

ELSE
    INSERT INTO SI_Conteo(SI_Num_Inventario, SI_Ubicacion_Fisica, SI_Num_Articulo, SI_Cantidad,SI_Num_Conteo,SI_Fecha_Conteo, SI_Usuario,SI_OV)
END IF;
汽车10米

简而言之:该CASE构造需要“存在”在您SELECT的 SQL 语句子句中。接收INSERT子句应该总是像这样提到两个列名

INSERT INTO SI_CONTEO (SI_Num_Inventario, 
  SI_Ubicacion, SI_Ubicacion_fisico,
  SI_Num_Articulo, SI_Cantidad,SI_Num_Conteo,
  SI_Fecha_Conteo, SI_Usuario,SI_OV)
SELECT SI_Num_Inventario = COALESCE (t.SI_Num_Inventario,c.SI_Num_Inventario),
  SI_Ubicacion = CASE WHEN SI_OV IS NULL THEN COALESCE(t.SI_Ubicacion, c.SI_Ubicacion) END,
  SI_Ubicacion_Fisica = CASE WHEN NOT SU_OV IS NULL THEN COALESCE(t.SI_Ubicacion_Fisica, c.SI_Ubicacion_Fisica) END,
  SI_Num_Articulo = COALESCE(t.SI_Articulo, c.SI_Num_Articulo), 
  NULL, ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章