指定した文字でSQLで文字列を分割する必要があります。私は「(」文字。私はそれを使用するこの方法でTEX_TEXTフィールドを分割する必要がありますが、結果には「(」がある。 指定された文字をSQLで分割する
Left(TEX_TEXT, CHARINDEX('(', TEX_TEXT)) as GroupName,
私はせずに結果を必要とします「(このような「charcter、:!80、80アバントなど....事前に感謝
指定した文字でSQLで文字列を分割する必要があります。私は「(」文字。私はそれを使用するこの方法でTEX_TEXTフィールドを分割する必要がありますが、結果には「(」がある。 指定された文字をSQLで分割する
Left(TEX_TEXT, CHARINDEX('(', TEX_TEXT)) as GroupName,
私はせずに結果を必要とします「(このような「charcter、:!80、80アバントなど....事前に感謝
このデモを試す
declare @mytable table (col1 varchar(20))
insert into @mytable
values ('80 (xxx 123)'),('79'),('100 Avant (d1)')
SELECT
LEFT(col1,
iif(
CHARINDEX('(', col1) -- get location of 'C'
= 0, -- if charindex is 0 then get length of the string
LEN(col1), -- thus this, if you don't check for no '(' then using charindex will return an error
CHARINDEX('(', col1) - 1) -- otherwise get the location of '(' minus 1
)
FROM @mytable
結果
IIF、LEFTとCHARINDEXを使用しました。80
79
100 Avant
最も簡単なことは、REPLACE()関数でラップすることです。あなたが分割して最初の部分を取っているときに、括弧が1つだけ出現することが確実になります。
最後に行うべきことは、後続のスペースがないことを確実にするためにRTRIM全体です。 1 '、または可能性 -
このアプローチの最良の部分は、それがのIIF文で
どうやっについて '...を使用するよりも速く動作する必要がありますので、あなたは、ロジックを適用する前に、データをテストする必要がないということです'... - 2'でも? –
'left'の2番目のパラメータには、どのような調整が必要ですか? –