【问题标题】:How Do I Split String In SQL Server Based On String Length如何根据字符串长度在 SQL Server 中拆分字符串
【发布时间】:2014-06-23 20:43:02
【问题描述】:

我想将旧数据复制到新数据库。我的旧数据库中有一个地址列,数据类型为 ntext,但在新数据库中,我必须使用 3 列来放置地址(地址 1、地址 2、地址 3,数据类型为 nvarchar(60))

如何将 OLD DB 中的字符串拆分为 NEW DB?

例如: 从旧数据库查询:

`select address from client`

result : 

Jl. Taman Crystal 2 Blok TC 2 No.79 RT.001/018, Cluster Crystal Residence, Summarecon Serpong, Pakulonan Barat - Kelapa Dua

【问题讨论】:

    标签: sql sql-server-2008 split substring charindex


    【解决方案1】:

    这实际上取决于您需要处理多少数据。

    对于小型集(比如少于 10K 左右),我会这样做:

    1. 创建一个临时表,其中包含一个键旧地址和 3 个新地址的空间。
    2. 将地址复制到临时表中。
    3. 为不同的部分编写一个“提取”查询并逐个运行它们。例如,要获取 address1 列,您可以使用 left 函数直到位置,

      INSERT INTO STAGE (address1)
      SELECT LEFT(address,location(address,','))
      

    完成每个即席查询后,您可以对结果运行一些查询,并确保您对此感到满意。如果您遇到问题,请修改查询并再次运行。

    一旦您对 STAGE 感到满意,就将其复制到您的决赛桌。

    对于较大的集合,我会编写一个具有良好错误检查、报告和异常表等的程序。一个真正的解析器和 ETL。对于您可以手动查看和处理的少量数据,这不值得。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多