Если у меня есть данные, в которых количество символов до |
всегда разные, как я могу написать оператор SELECT
, чтобы получить все символы до символа трубы?Выделить все до первого появления символа
Образец данных:
asdf|adkfdll|dd
asdkdkdk|da|d
Если у меня есть данные, в которых количество символов до |
всегда разные, как я могу написать оператор SELECT
, чтобы получить все символы до символа трубы?Выделить все до первого появления символа
Образец данных:
asdf|adkfdll|dd
asdkdkdk|da|d
;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
Вы можете использовать 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
Что должно произойти с записями, не '|' характер? Он отображает всю строку или ничего? –