Select charindex('% %',CAST(X.MyCharStringField AS NVARCHAR(max))) from X
文字列値の間に 2 つのスペースがあるフィールドを分割する方法を考えています。
フィールド コンテンツの例
'AFLOP 46.95 46.95 36.95 0 0 '
charindex と patindex はどちらも、テーブルの varchar フィールドを再度使用すると 0 を返しますが、varchar(max) 変数を宣言してそれでテストすると位置を返します。
テーブル varchar(max) フィールドでこれを機能させる方法がわかりません。
この作品
Declare @theBefore varchar(100)
SET @theBefore = 'AFLOP 46.95 46.95 36.95 0 0 '
select charindex(' ',@theBefore) as spaceIndex,SUBSTRING(@theBefore,0,6)as ITEM_ID
,ltrim(rtrim(SUBSTRING(@theBefore,charindex(' ',@theBefore),len(@theBefore)+2))) as BEFORE
これは機能しません。各レコードの char 文字列値に対して 0 を返します
Select charindex('% %',CAST(X.MyCharStringField AS NVARCHAR(max))) from X
誰でも理由がわかりますか?