检查其中一个字段是不是null sql server

时间:2015-08-12 12:53:51

标签: sql-server

我有一个包含7列的表,其中一列为null或不为null

SELECT *
FROM   V_TOUTES_SIM_ACTIVE vt
WHERE  VT.ID_PLAT_BUS_NUM IS NOT NULL
        OR VT.ID_PLAT_BUS_SERIE IS NOT NULL
        OR VT.ID_PLAT_FLEETLT_NUM IS NOT NULL
        OR VT.ID_PLAT_FLEETLT_SERIE IS NOT NULL
        OR VT.ID_PLAT_FLEET_NUM IS NOT NULL
        OR VT.ID_PLAT_FLEET_SERIE IS NOT NULL
        OR VT.ID_PLAT_TRACK IS NOT NULL 

如何指定此id中的一个或多个不为null,是否有任何建议?

1 个答案:

答案 0 :(得分:0)

你有一个非常模糊的问题,所以这里有一个黑暗的刺。 此查询添加了额外的列,显示哪些字段为空。

SELECT *
,ID_PLAT_BUS_NUM_IS_NULL        =  case when VT.ID_PLAT_BUS_NUM is null then 1 else 0 end
,ID_PLAT_BUS_SERIE_IS_NULL      =  case when VT.ID_PLAT_BUS_SERIE is null then 1 else 0 end
,ID_PLAT_FLEETLT_NUM_IS_NULL    =  case when VT.ID_PLAT_FLEETLT_NUM is null then 1 else 0 end
,ID_PLAT_FLEETLT_SERIE_IS_NULL  =  case when VT.ID_PLAT_FLEETLT_SERIE is null then 1 else 0 end
,ID_PLAT_FLEET_NUM_IS_NULL      =  case when VT.ID_PLAT_FLEET_NUM is null then 1 else 0 end
,ID_PLAT_FLEET_SERIE_IS_NULL    =  case when VT.ID_PLAT_FLEET_SERIE is null then 1 else 0 end
,ID_PLAT_TRACK_IS_NULL          =  case when VT.ID_PLAT_TRACK is null then 1 else 0 end
FROM   V_TOUTES_SIM_ACTIVE vt
WHERE  VT.ID_PLAT_BUS_NUM IS NOT NULL
        OR VT.ID_PLAT_BUS_SERIE IS NOT NULL
        OR VT.ID_PLAT_FLEETLT_NUM IS NOT NULL
        OR VT.ID_PLAT_FLEETLT_SERIE IS NOT NULL
        OR VT.ID_PLAT_FLEET_NUM IS NOT NULL
        OR VT.ID_PLAT_FLEET_SERIE IS NOT NULL
        OR VT.ID_PLAT_TRACK IS NOT NULL