首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >交叉适用与UNPIVOT

交叉适用与UNPIVOT
EN

Stack Overflow用户
提问于 2014-05-12 03:17:27
回答 1查看 4.2K关注 0票数 3

我发现UNPIVOT能够自动排除具有空值的字段。然而,交叉应用-值方法不能做到这一点。有人知道如何从交叉应用值中自动排除空值字段吗?比方说,如果字段Field3和Field4包含空值,则排除它们。

代码语言:javascript
复制
SELECT 
    E.FieldA, 
    E.FieldB, 
    E.FieldC, 
    DBParam.Display, 
    DBParam.Value
INTO DBParam
FROM
Map_Data AS E
CROSS APPLY (VALUES (Field1, 'Field1'),
            (Field2, 'Field2'), 
            (Field3, 'Field3'),
            (Field4, 'Field4')
) AS DBParam(Value, Display)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-12 05:06:34

不要使用VALUES,而是使用SELECT

代码语言:javascript
复制
SELECT E.FieldA, E.FieldB, E.FieldC, 
       DBParam.Display, DBParam.Value
INTO DBParam
FROM Map_Data E CROSS APPLY
     (SELECT Value, Display
      FROM (SELECT Field1 as Value, 'Field1' as Display UNION ALL
            SELECT Field2, 'Field2' UNION ALL
            SELECT Field3, 'Field3' UNION ALL
            SELECT Field4, 'Field4'
           ) vd
      WHERE Value is not null
     ) as DBParam(Value, Display);
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23600541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档