当前位置: 代码迷 >> Sql Server >> 怎么将 '66外面'这样的字符串转成 int型66,请大家指教
  详细解决方案

怎么将 '66外面'这样的字符串转成 int型66,请大家指教

热度:28   发布时间:2016-04-27 20:37:11.0
如何将 '66外面'这样的字符串转成 int型66,请大家指教。
如何将   '66外面 '这样的字符串转成   int型66,请大家指教。即忽略后面的中文字符。

------解决方案--------------------
select cast(stuff( '66外面 ',3,2, ' ') as int)
------解决方案--------------------
DECLARE
@s varchar(100)
SET @s = '6633外面 '

SELECT CONVERT(int, SUBSTRING(@s, 1, PATINDEX(N '%[^0-9]% ', @s) - 1))
------解决方案--------------------
DECLARE @str varchar(10)
SET @str = '66外 '
--提到第一个不是数字的起始位置
select PATINDEX(N '%[^0-9]% ', @str)
--取得数字的字符串
select SUBSTRING(@str, 1, PATINDEX(N '%[^0-9]% ', @str) - 1)
--进行类型转换,此时没有非数字符了,可以正常转换了
SELECT CONVERT(int, SUBSTRING(@str, 1, PATINDEX(N '%[^0-9]% ', @str) - 1))
------解决方案--------------------
set @a= '666aaaa444gggg6666 '

while patindex( '%[^0-9]% ',@a)> 0
begin
set @a=stuff(@a,patindex( '%[^0-9]% ',@a),1, ' ')
end

print @a
  相关解决方案