zoukankan      html  css  js  c++  java
  • 列执行MSSQL Server 处理Null

    题记:写这篇博客要主是加深自己对列执行的认识和总结实现算法时的一些验经和训教,如果有错误请指出,万分感谢。

        Null,在T-SQL中是个很诡异的内容,它的处置方式不按常规来走,以至于我们在处置数据的时候,经常会变的手足无措,这里探讨下,null与字符类型拼接的情况。

        以下语句:

    SELECT custid, country, region, city,
      country + N',' + region + N',' + city AS location
    FROM Sales.Customers;
     
    
    

        执行结果:

    custid      country         region city            location
    ----------- --------------- ------ --------------- -------------------
    1           Germany         NULL   Berlin          NULL
    2           Mexico          NULL   México D.F.     NULL
    3           Mexico          NULL   México D.F.     NULL
    4           UK              NULL   London          NULL
    5           Sweden          NULL   Luleå           NULL
    6           Germany         NULL   Mannheim        NULL
    7           France          NULL   Strasbourg      NULL
    8           Spain           NULL   Madrid          NULL
    9           France          NULL   Marseille       NULL
    10          Canada          BC     Tsawassen       Canada,BC,Tsawassen
    11          UK              NULL   London          NULL
    12          Argentina       NULL   Buenos Aires    NULL
    13          Mexico          NULL   México D.F.     NULL
    14          Switzerland     NULL   Bern            NULL
    15          Brazil          SP     Sao Paulo       Brazil,SP,Sao Paulo
    16          UK              NULL   London          NULL
    17          Germany         NULL   Aachen          NULL
    18          France          NULL   Nantes          NULL
    19          UK              NULL   London          NULL
    20          Austria         NULL   Graz            NULL
    ...
    
    (91 row(s) affected)

        
    location列很多为null这是因为country + N',' + region + N',' + city中的三个字段很多是null,此时如果我们希望值为null的列直接疏忽,而不是将整个表达式赋值为null。

        每日一道理
    生命不是一篇"文摘",不接受平淡,只收藏精彩。她是一个完整的过程,是一个"连载",无论成功还是失败,她都不会在你背后留有空白;生命也不是一次彩排,走得不好还可以从头再来,她绝不给你第二次机会,走过去就无法回头。

        可做如下处置:

    SET CONCAT_NULL_YIELDS_NULL OFF;
    SELECT custid, country, region, city,
      country + N',' + region + N',' + city AS location
    FROM Sales.Customers;

        
    执行结果:

    custid      country         region city            location
    ----------- --------------- ------ --------------- -------------------
    1           Germany         NULL   Berlin          Germany,,Berlin
    2           Mexico          NULL   México D.F.     Mexico,,México D.F.
    3           Mexico          NULL   México D.F.     Mexico,,México D.F.
    4           UK              NULL   London          UK,,London
    5           Sweden          NULL   Luleå           Sweden,,Luleå
    6           Germany         NULL   Mannheim        Germany,,Mannheim
    7           France          NULL   Strasbourg      France,,Strasbourg
    8           Spain           NULL   Madrid          Spain,,Madrid
    9           France          NULL   Marseille       France,,Marseille
    10          Canada          BC     Tsawassen       Canada,BC,Tsawassen
    11          UK              NULL   London          UK,,London
    12          Argentina       NULL   Buenos Aires    Argentina,,Buenos Aires
    13          Mexico          NULL   México D.F.     Mexico,,México D.F.
    14          Switzerland     NULL   Bern            Switzerland,,Bern
    15          Brazil          SP     Sao Paulo       Brazil,SP,Sao Paulo
    16          UK              NULL   London          UK,,London
    17          Germany         NULL   Aachen          Germany,,Aachen
    18          France          NULL   Nantes          France,,Nantes
    19          UK              NULL   London          UK,,London
    20          Austria         NULL   Graz            Austria,,Graz
    ...
    
    (91 row(s) affected)

        

     

    文章结束给大家分享下程序员的一些笑话语录: 有一天,一个男人穿越森林的时候,听到一个细微的声音叫住他。他低头一看,是一只青蛙。
    “如果你亲我一下,我会变成一个美丽的公主哦。”男人一言不发,把青蛙捡起来,放入口袋。
    “如果你亲我一下,我会变成一个美丽的公主哦。而且,我会告诉我遇到的每一个人,你是多么聪明和勇敢,你是我的英雄。”男人把青蛙拿出来,对着它微微一笑,又把它放回口袋。
    “如果你亲我一下,我会变成一个美丽的公主,然后我愿意成为你的爱人一星期。”男人又把青蛙拿出来,对着它微微一笑,把它放回口袋。
    “如果你亲我一下,我会变成一个美丽的公主,然后我愿意成为你的爱人一年,而且你可以对我做任何事。”再一次,男人把青蛙拿出来,对着它微微一笑,又把它放回口袋。
      最后,青蛙无力地问:“我开出了这么好的条件,为什么你还不肯吻我?”男人说:“我是一个程序员,我可没时间和什么公主鬼混。不过,拥有一个会说话的青蛙,倒是蛮酷的。”

    --------------------------------- 原创文章 By
    列和执行
    ---------------------------------

  • 相关阅读:
    为什么 PCB 生产时推荐出 Gerber 给工厂?
    Fedora Redhat Centos 有什么区别和关系?
    【KiCad】 如何给元件给元件的管脚加上划线?
    MCU ADC 进入 PD 模式后出现错误的值?
    FastAdmin 生产环境升级注意
    EMC EMI 自行评估记录
    如何让你的 KiCad 在缩放时不眩晕?
    KiCad 5.1.0 正式版终于发布
    一次单片机 SFR 页引发的“事故”
    java基础之集合
  • 原文地址:https://www.cnblogs.com/xinyuyuanm/p/3109012.html
Copyright © 2011-2022 走看看