zoukankan      html  css  js  c++  java
  • SQL 随手记

    SQL 学习片段:

    建立一个简单的联系数据表,

    mobile_number char(11)、mobile_province nvarchar(50)、mobile_area nvarchar(200)、mobile_type nvarchar(50)

    数据来自另一个数据表,用 sql 语句将原表数据“插入”到新表,插入中解决几个小问题:

    mobile_number 数据来自源表中两个字段,需要 + 一下,但 + 了之后长度可能也不足 11 位;

    mobile_province 和 mobile_area 来自源表中的一个字段,以1个空格分隔,前面部分作为province后面作为area;

    执行语句如下:

    USE mobile_test
    DELETE FROM mobile_phone_distribute
    go
    
    INSERT INTO mobile_phone_distribute (mobile_number,mobile_province,mobile_area,mobile_type)
    SELECT Dm_Mobile.MobileNumber+Dm_Mobile.AreaCode,SUBSTRING(Dm_Mobile.MobileArea,0,CHARINDEX(' ',dm_mobile.MobileArea)),SUBSTRING(DM_MOBILE.MobileArea,CHARINDEX(' ',dm_mobile.MobileArea)+1,LEN(dm_mobile.mobilearea)-CHARINDEX(' ',dm_mobile.MobileArea)),DM_MOBILE.MobileType
    FROM Dm_Mobile
    SELECT * FROM mobile_phone_distribute
    SELECT * FROM mobile_phone_distribute WHERE LEN(mobile_number)<11
    GO
    将源表数据加工插入新表

    解决新表中 mobile_number 字段不足 11 位,后面填充'X',执行语句如下:

    UPDATE mobile_phone_distribute
    --SET mobile_number = SUBSTRING(CONCAT(mobile_number,'XXXXXX'),0,11)
    SET mobile_number=LEFT(rtrim(mobile_number)+cast('XXXXXXXXX' as varchar(20)),11)
    WHERE LEN(mobile_number)<11
    SELECT * FROM mobile_phone_distribute
    GO
    不足11位补齐X
  • 相关阅读:
    VS2012打开项目——已停止工作
    使用copydata实现进程之间数据传递
    WPF Demo20 模板
    WPF Demo19 命令、UC
    WPF Demo18 路由事件
    WPF Demo17 数据绑定
    Spark2.3.0 报 io.netty.buffer.PooledByteBufAllocator.metric
    Impala与Hive的优缺点和异同
    Hive 报错信息及解决方法
    hive表多种存储格式的文件大小差异,无重复数据
  • 原文地址:https://www.cnblogs.com/cinlap/p/6409955.html
Copyright © 2011-2022 走看看