我有一个包含整数的 A列。在某些情况下,该列将包含以逗号分隔的两个整数列表,表示为字符串。
示例:1,2。在这种情况下,我需要做两件事。
如果有助于更好地理解问题,我们有一个数据供应商已更新其数据中的ID字段。他们维护遗留ID的想法是简单地列出它,然后是用逗号分隔的新ID。为什么他们选择这样做而不是创建新列我不知道。我相信他们有他们的理由。
答案 0 :(得分:3)
您可以这样做:
select cast( (case when a like '%,%' then substring(a, charindex(',', a) + 1, len(a)) else a end) as int) b,
cast( (case when a like '%,%' then left(a, charindex(',', a) - 1) end) as int) c
当然,如果您希望值保持为字符串,则不需要cast()
。
答案 1 :(得分:0)