zoukankan      html  css  js  c++  java
  • SQL 的一个技巧

      遇到一个需求,项目是我接手二次开发的,之前的大神设计数据库,订单表中没有订单号,现在让我加上这个号,规则是订单创建日期加上自增的ID,ID需要补足5位,例:00002,00124,01245这样。这个并不难。在a表中更新我加上的订单号:

    UPDATE  dbo.a
    SET     orderNo = CONVERT(VARCHAR(100), CreateDate, 112) + RIGHT(REPLICATE('0',  5) + LTRIM(Id), 5)

    这样a表中的数据都能对应的起来了,也不用手工改了。接下来是要把a表中的订单号更新到b表中去,a和b用a的Id关联的。开始纠结了下,最后尝试着写出如下代码,很巧妙的解决了问题:

    UPDATE  dbo.b
    SET     OrderNo = ( SELECT DISTINCT
                                CONVERT(VARCHAR(100), a.CreateDate, 112)
                                + RIGHT(REPLICATE('0', 5) + LTRIM(Id), 5)
                        FROM    dbo.b
                        WHERE   b.Id= dbo.a.Id--这个地方需要注意下因为之前设计的列名完全一样,所以需要加上各自的表名,如果不一样的话,就可以不加的。
                      )

     

  • 相关阅读:
    2-分类
    1-确定变量间是否有关系—显著性检验
    git简单操作
    Hadoop HA和Hbase HA
    Docker入门操作
    内存数据库专题(MemCached 和Redis)
    Spark MLlib和Sprk GraphX
    Spark 调优
    Spark Streaming基础
    Spark SQL
  • 原文地址:https://www.cnblogs.com/bobo-pcb/p/5443308.html
Copyright © 2011-2022 走看看