Усечение строк из имени столбца - PullRequest
1 голос
/ 23 марта 2012

У меня есть столбец, значения которого делятся на двоеточие ":". Например, DT: CSDF, SFT: TAHS и т.д ...

Мне просто нужно взять правую сторону, то есть CSDF, TAHS и т. Д.

Как мне это сделать в предложении select?

Ответы [ 4 ]

3 голосов
/ 23 марта 2012

Если у вас никогда не будет точек, вы можете использовать это

PARSENAME(REPLACE(ColumnName,':','.'),1)

пример

DECLARE @v VARCHAR(100) = 'DT:CSDF'


SELECT PARSENAME(REPLACE(@v,':','.'),1)

в противном случае используйте PATINDEX и RIGHT

SELECT RIGHT(ColumnName,LEN(ColumnName) -PATINDEX('%:%',ColumnName))

Пример

DECLARE @v VARCHAR(100) = 'DT:CSDF'


SELECT RIGHT(@v,LEN(@v) -PATINDEX('%:%',@v))
0 голосов
/ 23 марта 2012
SELECT SUBSTRING(fieldname, CHARINDEX(':', fieldname) + 1, LEN(fieldname)) 
FROM ...

Дополнительные строковые функции t-sql вы можете найти здесь: http://msdn.microsoft.com/en-US/library/ms181984(v=sql.90).aspx

0 голосов
/ 23 марта 2012

как то так:

SUBSTR( INSTR( mycol, ':' ) )
0 голосов
/ 23 марта 2012

Как это:

SELECT SUBSTRING(YourField, 
                 CHARINDEX(':', YourField) + 1, 
                 LEN(YourField)
                 ) AS YourNewField
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...