2016-12-02 2 views
0

Как подстроить данные. Например, у меня есть данные, как это:Как использовать подстроку и PatIndex в SQL Server

+----------------------+ 
|John123123412412wqeqw | 
|May1231243334234wawdd | 
|Jo02930124010284jahdj | 
|dy827837127912938hygb | 
+--------------------- + 

Я хочу выход быть похожим на это:

+----------------------+ 
|John     | 
|May     | 
|Jo     | 
|dy     | 
+--------------------- + 

В настоящее время я не понимаю, как применять подстроки и CHARINDEX в моем сценарии.

Заранее благодарен!

+0

Что вы пытаетесь получить из строки? Я имею в виду начальное и конечное требование? – Searching

ответ

3

Вы можете попробовать LEFT и PATINDEX с рисунком в соответствии с цифрами, такими как PATINDEX('%[0-9]%', 'John123123412412wqeqw').

Пример кода

DECLARE @Text VARCHAR(500); 
SET @Text = 'John123123412412wqeqw'; 

SELECT LTRIM(RTRIM(LEFT(@Text, PATINDEX('%[0-9]%', @Text) - 1))) 

Вы можете сделать это из-за стола, как показано ниже

SELECT 
    LTRIM(RTRIM(LEFT(ColumnName, PATINDEX('%[0-9]%', ColumnName) - 1))) 
FROM 
    [Table1] 
+0

Спасибо за это @aruna. Я на самом деле получаю вывод, что хочу! –

+0

@JackyMontevirgen Отлично, вы использовали вышеуказанный код или другой? – Aruna

+0

Я использовал код выше, и он работает для меня. Теперь я понимаю, что использование PATINDEX. Еще раз спасибо @Aruna :) –

1

Лучший способ для обработки строк и есть манипуляция в стороне приложения, а не в стороне базы данных. Но если вам требуется это, то вы можете использовать PATINDEX вместе с SUBSTRING, чтобы получить то, что вы хотите,

SELECT PATINDEX('%[^0-9]%',stringValueCol) 'Position of NonNumeric String Position', 
SUBSTRING(stringValueCol,PATINDEX('%[^0-9]%',stringVlaueCol),PATINDEX('%[^A-Z]%',stringValueCol)-1) 'NonNumeric String' 
FROM 
    myTable 

Но я бы предложил сделать это манипуляции в коде, а не на стороне базы данных.

+0

Спасибо за ваше предложение @coder от кода. Но я не использую никаких приложений. Я хочу только извлечь необработанные данные из моей базы данных и поместить их в мой отчет. Но ваше предложение также помогает. еще раз спасибо! –

Смежные вопросы