-1
私は、文字列のように見える、2つの文字の間にある文字列の一部を抽出しようとしている -2つの文字の間にあるSQL内の文字列の抽出部分が、同じ文字が複数ある
例/ EXMPL/(太字)BBASIC/例 /例
私は別の列に移動しようとしていたテキストは、3番目と4番目の間のテキストの4番目のセクションである「/」
私は、文字列のように見える、2つの文字の間にある文字列の一部を抽出しようとしている -2つの文字の間にあるSQL内の文字列の抽出部分が、同じ文字が複数ある
例/ EXMPL/(太字)BBASIC/例 /例
私は別の列に移動しようとしていたテキストは、3番目と4番目の間のテキストの4番目のセクションである「/」
DBMSを知らず、私は内蔵の分割関数があるかどうかわからないrはありません。 SQL Server 2008のR2は、スプリット機能を持っていないので、私はそれをこのように実行します。where id = 4
手段を使用して
declare @str varchar(max) = 'example/example/bbasic/eXaMpLe/example', @delim char(1) = '/'
;with vars(id, _start, _end) as
(
select 1, cast(1 as bigint), charindex(@delim, @str)
union all
select id + 1, _end + 1, charindex(@delim, @str, _end + 1)
from vars
where _end > 0
)
select id, cast(substring(@str, _start, case when _end > 0 then _end - _start else len(@str) - _start + 1 end) as varchar(max)) as value
from vars
where id = 4
option (MAXRECURSION 0)
は、第三/
区切り文字の後に第四の要素を引き出します。このSQLは次の結果を返します。
id value
--- --------
4 eXaMpLe
どのRDBMSを使用していますか? –
'split_part(the_column、 '/'、4)' –
正解はRDBMS固有のものです。 RDBMSが何を使用するかを知らずにこの質問に答えることは、純粋な推測です。 –