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
,Frank
和Barbie
。