T-SQLを使用して、サブストリングを最初の単一スラッシュまで含めて検索したいと思います。たとえば:T-SQLはサブストリングを取得しますが、最初の単一スラッシュは含みません
「https://domain/xyz/」「https://domainは」
は、これを実現する方法についていくつかの指導をお願い申し上げなるべきです。私はこれが動作すると信じて
T-SQLを使用して、サブストリングを最初の単一スラッシュまで含めて検索したいと思います。たとえば:T-SQLはサブストリングを取得しますが、最初の単一スラッシュは含みません
「https://domain/xyz/」「https://domainは」
は、これを実現する方法についていくつかの指導をお願い申し上げなるべきです。私はこれが動作すると信じて
このソリューションは、一つ以上の前進を扱う後にスラッシュと(http、https、ftpなどのような)任意のプロトコル接頭辞。
declare @str varchar(100) = 'https://domain/xyz/';
select substring(@str, 1, charindex('/',@str,(charindex('://',@str))+3)-1);
可能性はプロトコルの後にスラッシュがないことが存在する場合(例えばhttps://domain)、あなたは以下のソリューションを使用することができます。私がまとめたのは、簡単に消耗しやすいサンプルデータです。
declare @table table (s varchar(100));
insert @table values
('https://domain1/blahblah//'),
('http://domain2/fff/ggg/hhh'),
('https://domainX/ppp/20%xx/'),
('ftp://ftpserver6/zzzzz');
select isnull(substring(s,1,nullif(charindex('/',s,(charindex('://',s))+3),0)-1),s)
from @table t;
戻り
https://domain1
http://domain2
https://domainX
ftp://ftpserver6
パーフェクト。ありがとうございました。 – user8851548
:
select left(str, patindex('%[^/]/[^/]%', str))
文字列が最初にハイフンで終わる可能性がある場合は、あなたがいつでも行うことができます。
select left(str, patindex('%[^/]/[^/]%', str + 'x'))
後に「/」の最初の発生を探します をので、「// https」のの場所を探します私の悪い:) – Sami
これは、文字列が 'https:// domain /'の後ろに何も置かれていない場合を除いて、動作します。 OPに関連するかもしれないし、そうでないかもしれない。 –
良い解決策。ありがとうございました。 – user8851548
あなたが知られている文字列を見つける必要があります:あなたは正しいですし、その – DaniDev