sql - string_split 的另一种方法
问题描述
我有一个如下查询
SELECT vals.*
FROM table AS rels
INNER JOIN table AS vals ON vals.Id IN (
SELECT value
FROM STRING_SPLIT(rels.relatedID, ',')
)
WHERE rels.Id = 'x'
我想避免STRING_SPLIT
在这里使用方法。有什么可能的方法吗?
解决方案
您可以使用LIKE
:
SELECT vals.*
FROM table rels INNER JOIN
table vals
ON CONCAT(',', rels.relatedID, ',') LIKE CONCAT('%,', vals.Id, ',%')
WHERE rels.Id = 'x';
但是,您应该努力修复数据模型。在一个字符串列中存储多个值只是在 SQL 数据库中存储数据的错误方法。