有一个带有一些“额外符号”的数字 nvarchar 值,例如1/2、9/6、14A它们总是以数字开头。
如何将这个“额外符号”值从开始到第一个非整数字符的索引?示例行必须是1, 9, 14
类似
SUBSTRING(Value, 0, CHARINDEX(Value, /*Here must be all symbols except numbers*/))
有一个带有一些“额外符号”的数字 nvarchar 值,例如1/2、9/6、14A它们总是以数字开头。
如何将这个“额外符号”值从开始到第一个非整数字符的索引?示例行必须是1, 9, 14
类似
SUBSTRING(Value, 0, CHARINDEX(Value, /*Here must be all symbols except numbers*/))
请尝试查询:
SELECT LEFT(ColumnName,PATINDEX('%[^0-9]%', ColumnName+'a')-1) FROM TABLE
试试这个:
SELECT CASE PATINDEX('%[^0-9]%', ColumnName) WHEN 0 THEN ColumnName
ELSE LEFT(ColumnName,PATINDEX('%[^0-9]%', ColumnName)-1) END
避免将字符附加到表中的每一行的另一个选项:
SELECT SUBSTRING(col, 1, COALESCE(NULLIF(PATINDEX('%[^0-9]%', col)-1, -1), 255))
FROM dbo.mytable;