当实际值为null时,SQL不返回列元数据

时间:2018-07-10 05:23:59

标签: sql sql-server dynamic-columns

我在信息链接SQL查询中遇到问题,该查询联接了多个表,其中返回了一些动态列名。它们存储在以下查询的labelvalue属性中。请注意,我们在数据库中有某些字段,当null不会在输出中显示为列。例如,数据库中的字段test1具有所有值null,则不会返回test1。但是,即使test1的单个值(行)有一些数据,我在输出中仍看到test1。要求始终在输出中具有该字段,而不管其是否有数据。请查看下面的查询,并指出引起问题的原因。

SELECT
   I1."item_uid" AS "ITEMUID",
   I1."item_reference_uid" AS "ITEMREFERENCEUID",
   w2."workflow_abbrv" AS "STATUS",
   s3."label" AS "LABEL",
   s3."value" AS "VALUE",
   a4."active_status_desc" AS "ACTIVESTATUSDESC",
   I5."item_reference_uid" AS "PARENTID",
   I5."item_desc_display" AS "PARENTDESCDISPLAY"
FROM
   ("synaptica"."dbo"."sub_elements" s3 LEFT OUTER JOIN "synaptica"."dbo"."ITEMS_REPOSITORY" I1 ON I1."item_uid" = s3."item_uid") 
   LEFT OUTER JOIN("synaptica"."dbo"."ITEMS_REPOSITORY" I5 
   RIGHT OUTER JOIN(select "syndetic_key_item", "rel_type_abbrv", "syndetic_rel_item" from "synaptica"."dbo"."SYNDETIC_NETWORK" s55
   left join "synaptica"."dbo"."RELATIONSHIP_TYPES" R66 ON S55."syndetic_rel_type" = R66."rel_type_uid"
    where (R66."rel_type_abbrv" = 'PhysParent' or R66."rel_type_abbrv" is null))S6

ON 

I5."item_uid" = S6."syndetic_rel_item") ON I1."item_uid" = S6."syndetic_key_item",
   "synaptica"."dbo"."workflow_types" w2,
   "synaptica"."dbo"."active_statuses" a4,
   "synaptica"."dbo"."OBJECT_CLASSES" O8,
   "synaptica"."dbo"."approval_statuses" a9

WHERE
   (I1."item_active_status" = a4."active_status_uid")
   AND (a9."approval_status_uid" = I1."item_approval_status")
   AND (I1."item_object_class" = O8."object_class_uid")
   AND (I1."item_workflow" = w2."workflow_uid")
   AND ((left(O8."object_class_abbrv",
   7) = left(?VER,
   7)))
   AND (s3."label" <> 'CLS360_OBJECT_ID')
   AND (RIGHT(O8."object_class_abbrv",
   10) = 'PHYS CLASS')

0 个答案:

没有答案