拆分列中的文本

时间:2013-04-30 19:17:27

标签: sql

我有这段文本存储在我们的MS-SQL数据库中(忽略引号而不,我无法重新设计这项工作的具体方式):

  

“TEST | 00000298398293 | EQ5 |病人”

现在,当我做一个简单的选择时,我得到了返回的结果。我想做的是根据“|”拆分该字符串字符并返回与此字符串关联的单个字符串,以便我可以在不同的字段中具有“TEST”,“0000298398293”,“EQ5”和“Patient”。我怎样才能做到这一点?在PHP中,你可以使用explode方法,在MS-SQL中有类似的东西吗?

1 个答案:

答案 0 :(得分:1)

这肯定不是最优雅的解决方案,但我过去曾使用过:

DECLARE @Sql varchar(50) = 'TEST|00000298398293|EQ5|Patient'


SELECT
    PARSENAME(REPLACE(@sql,'|','.'),4),
    PARSENAME(REPLACE(@sql,'|','.'),3),
    PARSENAME(REPLACE(@sql,'|','.'),2),
    PARSENAME(REPLACE(@sql,'|','.'),1)

注意:这仅适用于您有3个管道,最终考虑将来重新设计您的数据库!