从列中的逗号分隔列表中选择

The*_*ter 0 sql sql-server

我有一张桌子,表 1,

表格1

并且我想选择与区域 3 相邻的所有区域。我对此的查询是什么?NEIGHBOR 列是一个 CHAR 列。

我知道不应以这种方式设置表,但这是我必须使用的,因为我没有数据库的权限。

Gor*_*off 5

修复您的数据模型!有很多原因导致它被破坏。

但是,如果您坚持使用它,则可以使用:

select t.*
from t
where ',' + neighbor + ',' like '%,3,%';
Run Code Online (Sandbox Code Playgroud)

您还可以使用string_split()以下方法取消嵌套值:

select t.*
from t cross apply
     string_split(t.neighbor, ',') s
where s.value = '3';
Run Code Online (Sandbox Code Playgroud)