SQLserver中从数组中截取固定地点的子字符串
原创先上图:
在工作中,需要截取连接字符串中固定子串之后的值,如图所示:框中的字符串需要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 被截取的子串
版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除