我正在处理一个非常旧的数据库,该数据库是用低于标准的规范创建的,在聚合值以创建报表时遇到了问题。我遇到一个表,其中列中有列表。我理解这是“一场艰难的战斗,无缘无故地违反了关系数据库设计的最基本原则之一”,因为列中有列表,但这不是我的设计。我使用一个巨大的UNION
语句从12+表中提取,而这个语句给我带来了麻烦。
例如,数据库中没有一个dateSigned
、datePurchased
、dateReceived
列,所有这些列都位于一个名为DATE
的列中。此列使用|
在分隔列表中包含多个值。包含的数据为||09/19/2011||09/21/2011|||09/23/2011|
,每个位置为不同的日期,用户输入为空,空值为空。SQL中是否有任何方法将此列表中的一个值分隔开来,并且只使用一个值?我真的想避免在我的视图中写入条件,以便正确显示这个特定的表。
发布于 2016-03-23 12:28:52
您可以使用拆分函数。
但是,如果您真的只想从列表中获取其中一个值,并且这些值都是固定的宽度,就像它们在示例数据中一样,那么您可以使用SUBSTRING()。
https://stackoverflow.com/questions/36188025
复制相似问题