【问题标题】:how to split column by commas using MS SQL如何使用 MS SQL 以逗号分隔列
【发布时间】:2019-08-27 12:45:30
【问题描述】:

这是我的代码

select top 100
       ih.streetname,
       ih.district,
       ih.intervalhouse
from vw_pn_intervalshouse ih
inner join vw_pn_street s on s.id = ih.streetname
CROSS APPLY STRING_SPLIT(ih.intervalhouse, ',');

我正在尝试使用 string_split 但结果不正确

我会告诉你一些输出

district        streetname      intervalhouse
32000100001832  1008302496093   1,17
32000100001832  1008302496093   1,17
32000100001832  1008302496095   8,10,12
32000100001832  1008302496095   8,10,12
32000100001832  1008302496095   8,10,12

结果必须像

district        streetname      intervalhouse
32000100001832  1008302496093   1
32000100001832  1008302496093   17
32000100001832  1008302496095   8
32000100001832  1008302496095   10
32000100001832  1008302496095   12

可能是什么问题?有什么解决办法吗?

【问题讨论】:

  • 您能分享您的意见吗?
  • 插入是什么意思?
  • 如果问题是关于我认为间隔房子是 nvarchar
  • 看起来 DISTINCT 可能属于某个地方,因为 CSV 行似乎有重复。
  • 你的表中真的有 2+3 = 5 行吗?还是 2 个?

标签: sql sql-server split


【解决方案1】:

您需要从 string_split 中选择值列。您正在选择表中的列。

select top 100
       ih.streetname,
       ih.district,
       s.value
from vw_pn_intervalshouse ih
inner join vw_pn_street s on s.id = ih.streetname
CROSS APPLY STRING_SPLIT(ih.intervalhouse, ',') s;

【讨论】:

  • 现在我有新问题,每一行都是空的
  • 您的源数据是否有尾随逗号?
猜你喜欢
  • 2015-11-29
  • 1970-01-01
  • 1970-01-01
  • 2018-07-18
  • 2021-09-05
  • 1970-01-01
  • 2013-07-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多