在sql server中以列方式插入行

时间:2016-02-22 14:19:12

标签: sql sql-server pivot

下面的

是我的表名:sample1

ID NAME                                 ADDRESS
1  DAN  NO.10,CHANGJIANG XI STREET,JIANXI DISTRECT ,LUOYANG CITY,HENAN ,CHINA
2  SAM  BINALBAGAN NEGROS OCCIDENTAL  PHILIPPINES
3  JOSE B-36 L-40 PH-1 ST. JOSEPH VILLAGE 7, MARINIG CABUYAO LAGUNA, 4025 

我需要输入行到列,但是这里的挑战是,在样本2中,我使用分割函数时只有4列源行获得6个或更多,如何在插入数据后在ADRS4中插入/追加平衡数据在列中。

输出应如下:

ID  NAME                  ADRS1            ADRS2            ADRS3                ADRS4
1   DAN                   NO.10       NGJIANG XI STREET   JIANXI DISTRECT  LUOYANG CITY,HENAN ,CHINA  

1 个答案:

答案 0 :(得分:1)

INSERT INTO table_name (column1,column2,column3,...)
VALUES (value1,value2,value3,...);

如果要跳过值,只需输入空值即可。所以你的查询应该是这样的:

INSERT INTO table_name (name,adrs1,adres2,...)
VALUES (John,Null,Xi Street,...);

您的SQL设计从IMO开始并不是那么好,但这应该适用于您当前的设置。我会创建一个包含多个列的表,然后根据需要插入,如下所示:

CREATE TABLE [dbo].[Table_1](
    [id] [int] NULL,
    [name] [varchar](50) NULL,
    [ADRS1] [varchar](50) NULL,
    [ADRS2] [varchar](50) NULL,
    [ADRS3] [varchar](50) NULL,
    [ADRS4] [varchar](50) NULL
) ON [PRIMARY]
相关问题