12

次のようなデータがあります。

SourceOfBooking
----------------
Company1 (Foo)
Company2 (Bar)
Company3 (Foo1)
Company4 (Foo2)

これを変換しようとしているので、データのみが表示されます。

SourceOfBooking
----------------
Company1
Company2
Company3
Company4

私が試してみました:

LEFT(SourceOfBooking, CHARINDEX(';', SourceOfBooking) )

運がない。

私は信じられないほど単純なものを見逃していると確信しています...誰かが啓発したいですか?

KR、ジェームズ。

4

4 に答える 4

24

キャラを間違えただけだと思う

case
    when CHARINDEX('(', SourceOfBooking) > 0 then
        rtrim(left(SourceOfBooking, CHARINDEX('(', SourceOfBooking) - 1))
    else
        SourceOfBooking
end
于 2012-10-15T16:23:21.970 に答える
9

あなたはできる;

LEFT(SourceOfBooking, CHARINDEX(' (', SourceOfBooking + ' (') - 1)

(必要に応じて削除+ ' ('します。 (

于 2012-10-15T16:25:33.080 に答える
1

これは、括弧があるかどうかに関係なく会社名を返し、括弧の前にスペースがない場合も処理します。

select case 
    when CHARINDEX('(', SourceOfBooking) > 0
    then RTRIM(LEFT(SourceOfBooking, CHARINDEX('(', SourceOfBooking) - 1))
    else SourceOfBooking
end
from Table1

SQL フィドルの例

于 2012-10-15T16:29:22.097 に答える
0

これを試してみてください。

新しいテーブルを作成し、以下のスクリプトのようにデータを挿入します。次に、選択クエリを実行します。必要な出力が得られます。

create table teststring
(name varchar(20))

insert  into teststring values ('ashish (123)')
insert  into teststring values ('ashish jain (123)')


select substring(name,1,charindex('(',name)-1)abc ,name from teststring
于 2016-07-22T11:27:20.330 に答える