开发者社区> 问答> 正文

T-SQL修剪&nbsp(和其他非字母数字字符)

我们有一些输入数据,有时有时以&nbsp字符结尾。

数据以varchar()的形式从源系统输入,而我们尝试将这些字符强制转换为十进制会失败。

Ltrim和Rtrim不会删除字符,因此我们被迫执行以下操作:

UPDATE myTable
SET myColumn = replace(myColumn,char(160),'')
WHERE charindex(char(160),myColumn) > 0

这适用于&nbsp,但是对于任何非字母数字(在这种情况下为数字)字符,有没有很好的方法呢?

展开
收起
心有灵_夕 2019-12-26 21:39:39 761 0
1 条回答
写回答
取消 提交回答
  • 供了有关如何删除非字母数字字符的示例:

    -- Put something like this into a user function:
    DECLARE @cString    VARCHAR(32)
    DECLARE @nPos    INTEGER
    SELECT  @cString = '90$%45623 *6%}~:@'
    SELECT  @nPos = PATINDEX('%[^0-9]%', @cString)
    
    WHILE @nPos > 0
    BEGIN
    SELECT @cString = STUFF(@cString, @nPos, 1, '')
    SELECT  @nPos = PATINDEX('%[^0-9]%', @cString)
    END
    
    SELECT @cString
    
    2019-12-26 21:39:59
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载