【问题标题】:How to split table into two tables based on column value in sql?如何根据sql中的列值将表拆分为两个表?
【发布时间】:2020-05-19 06:18:06
【问题描述】:

我需要通过在data-base 中创建两个表来根据列的值将一个表拆分为两个表,例如:

我有一张如下表

table1

|---------------------|------------------|
|        Col1         |     Col2         |
|---------------------|------------------|
|         1           |         a        |
|---------------------|------------------|
|         2           |         a        |
|---------------------|------------------|
|         3           |         b        |
|---------------------|------------------|
|         4           |         a        |
|---------------------|------------------|
|         5           |         b        |
|---------------------|------------------|
|         6           |         b        |
|---------------------|------------------|
|         7           |         a        |
|---------------------|------------------|

我想要的结果如下表所示

table2

|---------------------|------------------|
|        Col1         |     Col2         |
|---------------------|------------------|
|         1           |         a        |
|---------------------|------------------|
|         2           |         a        |
|---------------------|------------------|
|         4           |         a        |
|---------------------|------------------|
|         7           |         a        |
|---------------------|------------------|

table3

|---------------------|------------------|
|        Col1         |     Col2         |
|---------------------|------------------|
|         3           |         b        |
|---------------------|------------------|
|         5           |         b        |
|---------------------|------------------|
|         6           |         b        |
|---------------------|------------------|

【问题讨论】:

    标签: sql sql-server tsql sql-server-2008-r2 sql-server-2014-express


    【解决方案1】:

    您可以使用SELECT...INTO 声明:

    create table #table1 (col1 int, col2 char(1))
    
    insert into #table1 
    values
     (1,'a')
    ,(2,'a')
    ,(3,'b')
    ,(4,'a')
    ,(5,'b')
    ,(6,'b')
    ,(7,'a')
    
    select Col1, Col2 into #table2
    from #table1
    where Col2 = 'a'
    
    select Col1, Col2 into #table3
    from #table1
    where Col2 = 'b'
    

    这是生成的#table2#table3

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-22
      • 2015-05-13
      • 2023-04-06
      • 1970-01-01
      相关资源
      最近更新 更多