有一个字符串是这样的112,113,114,115, 如何用sql语句去去掉最后一个逗号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了有一个字符串是这样的112,113,114,115, 如何用sql语句去去掉最后一个逗号相关的知识,希望对你有一定的参考价值。

参考技术A 可以用正则去掉 参考技术B substr(你的字符串,第一位开始索引号,截取位置的索引号)
比如 select substr('111,222,333,444,555,',0,19) from dual
参考技术C select left(字符串,len(字符串)-1) 参考技术D declare @str varchar
@str='112,113,114,115,'
select LEFT(@str, len(@str)-1 )
or
select substring(@str,1, len(@str)-1 )

14. 最长公共前缀

思路:
这个题目需要明确的是字符串最长公共前缀,所以如果存在这么的前缀,数组的每个字符串都有这样的前缀,有一个没有这样的前缀就返回空。所以难点是找存在这样的前缀,但要如何找出他最大的长度。
这里我是看到评论用python的特性,他能按照字符串的ASCII码进行排序,所以自己用C++实现了一下。
C++用sort进行排序,排序的标准是 比较两个字符串,找到第一个不同的字母,比较这两字母的ascii大小,并顺序排序。
然后我们取排序后的数组的第一个字符串和最后一个字符串,一直比较他们的字母是否相同,相同就加入res字符串中,遇到第一个不同的字母就break出循环,然后直接返回res字符串就可。
为什么取第一个和最后一个呢?因为我们前面说了,必须所有的字符串都有那么的前缀,才存在这样的前缀,所以如果有一个字符串不满足,那他就会第一个字母就不相同,他要么排第一个要么排在最后,所以我们就能返回空字符串。如果有这样的前缀,我们需要找到它的长度,那么按照这样的排序,不会让拥有公共前缀的字符串放在第一个字符串和最后一个字符串之间,因此我们就能找到最长的公共前缀。
例如我们的方法可以让abb,a,abz,会排成a,abb,abz

代码:

class Solution {
public:
    string longestCommonPrefix(vector<string>& strs) {
        int n=strs.size();
        sort(strs.begin(),strs.end(),[](string a,string b){
            int al=a.length(),bl=b.length();
            int n = min(al,bl);
            int i=0;
            for(;i<n;++i){
                if(a[i]!=b[i]) break;
            }
            return (a[i]-\'a\')<(b[i]-\'a\');
        });
        int l0=strs[0].length(),l1=strs[n-1].length();
        int l = min(l0,l1);
        string res = "";
        for(int i=0;i<l;++i){
            if(strs[0][i]==strs[n-1][i]) res += strs[0][i];
            else break;
        }
        return res;
    }
};

以上是关于有一个字符串是这样的112,113,114,115, 如何用sql语句去去掉最后一个逗号的主要内容,如果未能解决你的问题,请参考以下文章

如何从字符串中提取数字?

java 知识点突击-(111-120)

SQL Server 2008 R2:查找两列之间的链接和链接

SQL Server 2008 R2:查找两列之间的链接和链

编码 - 字符转换

算法训练 简单加法(基本型)