SqlServer 以逗号隔开的字符串字段的关联查询
时间: 2024-06-08 10:06:32 浏览: 171
如果你的数据库中有一个以逗号隔开的字符串字段,你可以使用 SQL Server 内置函数 `STRING_SPLIT` 将其拆分成多个行,并将其与另一个表进行关联查询。
例如,假设你有两个表 `TableA` 和 `TableB`,其中 `TableA` 包含一个以逗号隔开的字符串字段 `ColA`,并且你希望将这个字段与 `TableB` 的某个字段进行关联查询。你可以使用以下查询:
```
SELECT *
FROM TableA
CROSS APPLY STRING_SPLIT(ColA, ',')
INNER JOIN TableB ON TableB.ColB = value
```
在这个查询中,`STRING_SPLIT` 函数将 `ColA` 字段拆分成多个行,并将这些行与 `TableB` 进行关联查询。请注意,`value` 是 `STRING_SPLIT` 函数返回的拆分后的每个行的值。
如果你需要在查询中返回原始的字符串列,你可以使用 `STRING_AGG` 函数将结果组合成一个以逗号隔开的字符串。
例如,以下查询将以逗号隔开的字符串 `ColA` 与 `TableB` 关联查询,并返回原始的字符串列:
```
SELECT TableA.ColA, STRING_AGG(TableB.ColB, ',') AS ColB
FROM TableA
CROSS APPLY STRING_SPLIT(ColA, ',')
INNER JOIN TableB ON TableB.ColB = value
GROUP BY TableA.ColA
```
阅读全文