从列名截断字符串

时间:2012-03-22 20:27:16

标签: sql sql-server sql-server-2008

我有一个列的值除以冒号“:”。 例如DT:CSDF,SFT:TAHS等......

我只需要采取正确的一面,即CSDF,TAHS等

我如何在select子句中执行此操作?

4 个答案:

答案 0 :(得分:3)

如果你永远不会有点,你可以使用这个

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))

答案 1 :(得分:0)

像这样:

SELECT SUBSTRING(YourField, 
                 CHARINDEX(':', YourField) + 1, 
                 LEN(YourField)
                 ) AS YourNewField

答案 2 :(得分:0)

类似的东西:

SUBSTR( INSTR( mycol, ':' ) )

答案 3 :(得分:0)

SELECT SUBSTRING(fieldname, CHARINDEX(':', fieldname) + 1, LEN(fieldname)) 
FROM ...

您可以在此处找到更多t-sql字符串函数: http://msdn.microsoft.com/en-US/library/ms181984(v=sql.90).aspx