zoukankan      html  css  js  c++  java
  • MS Sqlserver删除字段最后的多余字符

    存在这样一些数据

    ,,,,dga bc,,aaaa,,,,
    ,,,,dga bc,,aaaa,,,
    ,,,,dga bc,,aaaa,,,
    ,,,,dga bc,,aaaa,,,,,,

    需要将最后多余的逗号去掉

    当数据中本来不存在空格的情况下,可以使用下面的方式简单的去掉

    SELECT REPLACE(RTRIM(REPLACE('aa,bb,cc,,,',',',' ')),' ',',')

    思路是把所有逗号换成空格 然后去掉最后的所有空格 再把空格换回来

    这样做有个缺陷,就是当正常数据中间本身存在空格时,替换后会将空格变成逗号

    新的方法采用sql function的方式实现

    创建函数:

    CREATE FUNCTION getstr(@oldstr nvarchar(512))
    returns nvarchar(512)
    AS
    BEGIN
        declare @revOldStr nvarchar(512)
        set @revOldStr=reverse(@oldstr)
        while (charindex(',',@revOldStr,1)=1)
        begin
            set @revOldStr=substring(@revOldStr,2,len(@revOldStr)-1)
        end
        return reverse(@revOldStr)
    END
    GO

    调用函数:

    update [tableName] set [columnName]=dbo.getstr([columnName])

    这样就不存在上一个方法,将本来正确的空格替换为逗号的情况了。

  • 相关阅读:
    php-ip
    第十三讲 服务寄宿
    第十二讲:服务寄宿
    第十一讲:大消息处理
    第十讲:绑定(信道)
    第九讲:消息契约
    第八讲:数据契约版本控制
    第七讲:数据契约(2)
    第六讲:数据契约
    第五讲:异步操作
  • 原文地址:https://www.cnblogs.com/tylertang/p/11231370.html
Copyright © 2011-2022 走看看