选择全部直到第一次出现一个字符

时间:2011-09-06 18:16:03

标签: sql sql-server-2005

如果我的数据中|之前的字符数始终不同,我怎么能写一个SELECT语句来将所有字符都添加到管道符?

示例数据:

asdf|adkfdll|dd
asdkdkdk|da|d

2 个答案:

答案 0 :(得分:5)

;WITH T(C) AS
(
SELECT 'asdf|adkfdll|dd' UNION ALL
SELECT 'asdkdkdk|da|d' UNION ALL
SELECT ''
)
SELECT  LEFT(C, CHARINDEX('|',C + '|') -1)
FROM T

答案 1 :(得分:3)

您可以将charindexsubstring

一起使用
select  substring(col1, 1, charindex('|',col1))
from    (
        select  'asdf|adkfdll|dd' as col1
        union all
        select  'asdkdkdk|da|d'
        ) as YourData
where   charindex('|',col1) > 0