首页 > 解决方案 > 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在这里使用方法。有什么可能的方法吗?

标签: sqlsql-servertsql

解决方案


您可以使用LIKE

SELECT vals.*
FROM table rels INNER JOIN
     table vals
     ON CONCAT(',', rels.relatedID, ',') LIKE CONCAT('%,', vals.Id, ',%') 
WHERE rels.Id = 'x';

但是,您应该努力修复数据模型。在一个字符串列中存储多个值只是在 SQL 数据库中存储数据的错误方法。


推荐阅读