在sql server中按列插入行
下面是我的表名:样本1在sql server中按列插入行,sql,sql-server,pivot,Sql,Sql Server,Pivot,下面是我的表名:样本1 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 L
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
如果要跳过一个值,只需输入一个空值。因此,您的查询应该如下所示:
INSERT INTO table_name (name,adrs1,adres2,...)
VALUES (John,Null,Xi Street,...);
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]
从IMO开始,您的SQL设计并不是很好,但这应该适用于您当前的设置。我将创建一个包含多列的表,然后根据需要插入,如下所示:
INSERT INTO table_name (name,adrs1,adres2,...)
VALUES (John,Null,Xi Street,...);
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]
你在这里面临的挑战是因为你的设计很差。您已将分隔数据存储在单个列中。这违反了1NF,是一个很难处理的问题。您必须首先解析此数据。然后,您必须使用Tab Alleman发布的问题中描述的技术将这些数据转回到列中。