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