插入具有相同id的select到

z9smfwbn  于 2021-08-09  发布在  Java
关注(0)|答案(1)|浏览(431)

在具有相同id的列中插入分隔的字符串。
假设我有如下演示设置:

USE DEMODATABASE 
GO 

CREATE TABLE EMPLOYEEID_Address 
  ( 
     ID            INT , 
     Address VARCHAR(MAX) 
  )

我声明了一些变量

DECLARE @id INT
DECLARE @Addresses VARCHAR(MAX) 
DECLARE @SEPARATOR CHAR(1)
SET @id = 1 
SET @SEPARATOR='|'
SET @Addresses='159 North Manchester Rd.
Edison, NJ 08817|209 West Fulton Lane
Braintree, MA 02184|...'

注:以下为 @addresses 刺是动态的,不是固定的
现在我的目标是插入到表中 EMPLOYEEID_Address 使用 STRING_SPLIT 功能。

/*TARGET TABLE*/
Id  Address
1   159 North Manchester Rd. Edison, NJ 08817
1   209 West Fulton LaneBraintree, MA 02184
1   ...

所以我试着:

INSERT INTO EMPLOYEEID_Address 
            (ID,Address)
Select @id as ID, 
SELECT * 
FROM   STRING_SPLIT(@EMPLOYEENAME, @SEPARATOR)

但这不管用

INSERT INTO EMPLOYEEID_Address 
            (Address)
SELECT * 
FROM   STRING_SPLIT(@EMPLOYEENAME, @SEPARATOR)

工作结果如下:

Id   Address
NULL 159 North Manchester Rd. Edison, NJ 08817
NULL 209 West Fulton LaneBraintree, MA 02184

有什么方法可以实现这一点,或者有更好的方法来实现以id和字符串作为参数传递的目标表吗?

ibrsph3r

ibrsph3r1#

我想你想要:

INSERT INTO EMPLOYEEID_Address (ID, Address)
    Select @id as ID, s.value
    from STRING_SPLIT(@EMPLOYEENAME, @SEPARATOR) s;

返回的列 string_split() 被称为 value .

相关问题