【问题标题】:Split two strings into one row in SQL (Access)在 SQL (Access) 中将两个字符串拆分为一行
【发布时间】:2015-10-19 05:47:17
【问题描述】:

我有一张带字符串的表格:

Field1
150120154030
201012

我想将两个字符串行中的数据插入到这样的表中:

F1         F2  F3  F4    F5   F6
15012015   40  30 20   10   12

对此编写查询有什么帮助吗?

【问题讨论】:

  • 请添加完整的样本数据,并附上您当前的信息;问题不清楚;)。
  • 您能否添加更多示例字段和数据以提出解决方案...如果您的表格只有这两行,那么您可以执行以下操作..select substr(feild1,1 ,8) 作为 f1,substr(feild1,9,2) 作为 f2,substr(feild1,10,2) 作为 f3,substr(field2 , 1,2) 作为 f4,substr(field2,3,2) 从(选择feild1 , ( select field1 as f1 from table qualify row_number() over (partition by feild1 order by field1)=2) as field2 from table)z;
  • 那么到目前为止你尝试了什么?

标签: sql string ms-access split


【解决方案1】:

如果你的问题不清楚,我可以考虑这样的查询:

SELECT 
    MAX(IIF(Field1 = '150120154030', P1, '')) As F1,
    MAX(IIF(Field1 = '150120154030', P2, '')) As F2,
    MAX(IIF(Field1 = '150120154030', P3, '')) As F3,
    MAX(IIF(Field1 = '201012', P1, '')) As F4,
    MAX(IIF(Field1 = '201012', P2, '')) As F5,
    MAX(IIF(Field1 = '201012', P3, '')) As F6
FROM (
    SELECT 
        Field1,
        MID(Field1, 1, LEN(Field1) - 4) As P1,
        MID(Field1, LEN(Field1) - 3, 2) As P2,
        MID(Field1, LEN(Field1) - 1, 2) As P3
    FROM yourTable) DT;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    • 2011-06-14
    • 2014-12-12
    相关资源
    最近更新 更多