在表格列中分隔列表

时间:2016-03-23 20:24:39

标签: sql-server

我正在开发一个使用低于标准规范创建的极其旧的数据库,在聚合值以创建报告时遇到了问题。我遇到一个表,列中有列表。我理解这是“通过在列中列出但是再次 - 列出一个艰难的战斗并违反关系数据库设计的最基本原则之一” - 这不是我的设计。我正在使用一个巨大的UNION声明从12个以上的表中提取,这一个给我带来了麻烦。

例如,数据库中没有dateSigneddatePurchaseddateReceived列,所有这些列都位于名为DATE的列中。此列使用|在分隔列表中包含多个值。包含的数据为||09/19/2011||09/21/2011|||09/23/2011|,每个位置与用户输入的日期不同,NULL值为空。 SQL中是否有任何方法可以分离并仅使用此列表中的一个值?我真的想避免在我的视图中编写条件,以便正确显示此特定表。

1 个答案:

答案 0 :(得分:0)

您可以使用分割功能。

但是,如果您真的只想从列表中获取其中一个值,并且这些值都是固定宽度,因为它们似乎在您的示例数据中,您只需使用SUBSTRING()。