sqlserver中如何实现sql如何将列数据按,分隔后进行inner jion关联
时间: 2024-06-10 14:04:40 浏览: 7
您可以使用 SQL Server 内置函数 STRING_SPLIT() 将列数据按逗号分隔,然后使用 INNER JOIN 进行关联,示例如下:
SELECT t1.column1, t2.column2
FROM table1 t1
INNER JOIN (
SELECT value, column2
FROM table2
CROSS APPLY STRING_SPLIT(column1, ',')
) t2 ON t1.column1 = t2.value
相关问题
2014版本sqlserver中如何实现sql如何将列数据按,分隔后进行inner jion关联
您可以使用SQL Server的函数STRING_SPLIT来将列数据按逗号分隔,然后使用INNER JOIN关键字将两个表进行关联。
示例代码如下:
```
SELECT *
FROM tableA a
INNER JOIN (
SELECT value
FROM STRING_SPLIT('1,2,3,4', ',')
) b ON a.id = b.value
```
其中,tableA是您需要进行关联的表,id是tableA的一个字段,'1,2,3,4'是需要进行分隔的数据,','是分隔符。使用INNER JOIN将a.id和b.value进行关联,即可实现按列数据内连接关联。
sqlserver查询时逗号分隔字符串
在 SQL Server 中,可以使用内置的 `STRING_SPLIT` 函数将逗号分隔的字符串转换为表格,然后使用 `JOIN` 语句连接表格和其他表格或视图。
例如,假设有一个名为 `list` 的表格,其中包含一个逗号分隔的字符串列 `items`,可以使用以下查询来将其转换为表格:
```sql
SELECT value
FROM STRING_SPLIT(list.items, ',');
```
这将返回一个名为 `value` 的表格,其中包含从 `list.items` 中拆分出的每个值。
如果要将这个表格连接到其他表格或视图,可以使用类似以下的查询:
```sql
SELECT *
FROM list
INNER JOIN (
SELECT value
FROM STRING_SPLIT(list.items, ',')
) items ON items.value = other_table.some_column;
```
其中 `other_table` 是您要连接到的另一个表格或视图,`some_column` 是要连接到的列。