0

有一个带有一些“额外符号”的数字 nvarchar 值,例如1/2、9/6、14A它们总是以数字开头。
如何将这个“额外符号”值从开始到第一个非整数字符的索引?示例行必须是1, 9, 14
类似

SUBSTRING(Value, 0, CHARINDEX(Value, /*Here must be all symbols except numbers*/))
4

3 回答 3

2

请尝试查询:

SELECT LEFT(ColumnName,PATINDEX('%[^0-9]%', ColumnName+'a')-1) FROM TABLE
于 2012-09-13T11:37:19.827 回答
0

试试这个:

SELECT CASE PATINDEX('%[^0-9]%', ColumnName) WHEN  0 THEN ColumnName
ELSE LEFT(ColumnName,PATINDEX('%[^0-9]%', ColumnName)-1) END
于 2012-09-13T11:57:03.890 回答
0

避免将字符附加到表中的每一行的另一个选项:

SELECT SUBSTRING(col, 1, COALESCE(NULLIF(PATINDEX('%[^0-9]%', col)-1, -1), 255)) 
  FROM dbo.mytable;
于 2012-09-13T12:13:35.377 回答