在单列中链接多个值

问题描述 投票:0回答:1

美好的一天

我有一张包含所有数据的表格。在列Products中,有链接到索引表的值,但它不是具有单个值,而是具有多个值,即 900;190;170。如果它是单个值,我只需在列Products上的两个表之间使用Left Join。有没有办法将它与多个值链接起来? 900 = 其他,190 = 书籍,170 = 笔。另一个问题是它可以是 Product 列中任意数量的值。

谢谢 阮

sql sql-server sql-server-2008
1个回答
0
投票
-- create a table
CREATE TABLE products (
  id INTEGER PRIMARY KEY,
  name varchar(20)  NOT NULL
);
CREATE TABLE productsIndex (  
  indexName varchar(120)  NOT NULL,
  itemIndex varchar(20)  NOT NULL
);

-- insert some values
INSERT INTO products VALUES (900, 'Books');
INSERT INTO products VALUES (800, 'Other');
INSERT INTO products VALUES (190, 'Pen');

-- insert some values
INSERT INTO productsIndex VALUES ('900;190;170', 'test');
INSERT INTO productsIndex VALUES ('800;100', 'test2');

SELECT p.* ,pi.itemIndex
    FROM products p
    join productsIndex pi
        on p.id  in (SELECT value FROM STRING_SPLIT(pi.indexName, ';'))
© www.soinside.com 2019 - 2024. All rights reserved.