我有一个列的值除以冒号“:”。 例如DT:CSDF,SFT:TAHS等......
我只需要采取正确的一面,即CSDF,TAHS等
我如何在select子句中执行此操作?
答案 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