小编Chr*_*son的帖子

SQL Server - 选择使用拆分的位置 - 不声明函数

SQL 服务器。兼容性级别 120。

我有一个表,其中一个 VARCHAR 列包含以分号分隔的整数值。我想对该列中的值进行 SELECT,就好像它们存在于某处的整数列中一样。

由于兼容级别,我不能使用 STRING_SPLIT。我也无法创建任何全局可用的函数。

但是,如果需要,我可以创建一个临时表。我的行动方针是什么?某种 WHILE 循环的嵌套(一个用于表的行,另一个用于字符串中的分号)?

更新:这可能是我想要实现的更好的解释:

假设我有以下表格。

CREATE TABLE Service
(
      ServiceId int
      , CustomerIds varchar(255)
);
Run Code Online (Sandbox Code Playgroud)
CREATE TABLE Customer
(
    CustomerId int
    , CustomerName varchar(30)
);
Run Code Online (Sandbox Code Playgroud)

有一些数据

INSERT INTO Customer (CustomerId, CustomerName)
VALUES  (1, 'John')
    ,(2, 'Niels')
    ,(3, 'Frank')
    ,(4, 'Barbie')
    ,(5, 'Holly')
    ,(6, 'Ebeneezer');
Run Code Online (Sandbox Code Playgroud)
INSERT INTO Service (ServiceId, CustomerIds)
VALUES  (1, '4')
    ,(2, '2;3');
Run Code Online (Sandbox Code Playgroud)

假设我想为任何客户选择 Customer.CustomerName,该客户的 ID 显示在该表中任何行的 CustomerIds 中。

也就是说,我想检索Niels,FrankBarbie

sql-server t-sql string-splitting

2
推荐指数
1
解决办法
975
查看次数

标签 统计

sql-server ×1

string-splitting ×1

t-sql ×1