2011-09-06 3 views
2

Если у меня есть данные, в которых количество символов до | всегда разные, как я могу написать оператор SELECT, чтобы получить все символы до символа трубы?Выделить все до первого появления символа

Образец данных:

asdf|adkfdll|dd 
asdkdkdk|da|d 
+1

Что должно произойти с записями, не '|' характер? Он отображает всю строку или ничего? –

ответ

4
;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 
3

Вы можете использовать charindex с substring:

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 
Смежные вопросы