将varchar转换为INT SQL -转换失败



我正在尝试将varchar转换为Int,我尝试了转换,转换,try_cast,但在将varchar转换为数据类型Int时失败了。还有其他的转换方法吗?

select cast('123RA' as INT) as p 

必须去掉非数字字符才能转换为整型。

SELECT 
textval,
cast(
LEFT(SUBSTRING(textval, PATINDEX('%[0-9.-]%', textval), 8000),
PATINDEX('%[^0-9.-]%', SUBSTRING(textval, PATINDEX('%[0-9.-]%', textval), 8000) + 'X') -1)
as int) numval
from t
GO
textval | numval:------ | -----:123RA | 123

db<此处小提琴>

最新更新