SQLserver中从数组中截取固定地点的子字符串

原创
小哥 3年前 (2022-11-02) 阅读数 36 #大杂烩

先上图:

在工作中,需要截取连接字符串中固定子串之后的值,如图所示:框中的字符串需要testdm拿出来了。优点是字符串的格式是固定的,并用分号分隔。

截取功能是必需的。SUBSTRING()以及获取字符串位置的函数。CHARINDEX()
对整个过程的描述:
1,首先找出Catalog=下标的位置;
2、再查Catalog=位置后的第一个分号;下标的位置
3,截取两个位置下标之间的字符
注:

截取函数SUBSTRING() 以及获取字符串位置的函数。CHARINDEX()具体使用方法请参考以下内容:

https://blog.csdn.net/lanxingbudui/article/details/87979290

https://blog.csdn.net/lanxingbudui/article/details/88024820

    declare @connstr varchar(8000)
    declare @new_database_name varchar(8000)
    declare @start_seat int
    declare @end_seat int
    
    set @connstr =Data Source=10.255.255.255;User ID=abc;Password=abc234;Initial Catalog=testdm;Provider=SQLNCLI10.1;Persist Security Info=True;Auto Translate=False;
--上述三个连接字符串之一
    set @start_seat = CHARINDEX(Catalog=,@connstr) --计算出现Catalog=第一个的位置
    set @end_seat = CHARINDEX(;,@connstr,CHARINDEX(Catalog=,@connstr))    --计算出现Catalog=在第一次之后;的位置
    set @new_database_name = SUBSTRING(@connstr,CHARINDEX(Catalog=,@connstr)+8,CHARINDEX(;,@connstr,CHARINDEX(Catalog=,
@connstr))-(CHARINDEX(Catalog=,@connstr)+8))
    select @start_seat 起始位置,@end_seat 结束位置,@new_database_name 被截取的子串

版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除

热门