この文字列はParent_ID
という列にあります。そこに存在する文字列の例:私はこのコードを書いたときサブストリング(...、...、CHARINDEX(....) - 0.5)関数
RBIA-3340-CU-XM-01-D/RBIA-3340-01-4-D-34080-11441A1-2TC-001
/B1
なし::
SELECT Substring([parent_id], 1,
CHARINDEX('/B',parent_id,25)-1)
FROM [c3d_aug].[dbo].[atta_properties]
を私が得た
RBIA-3340-CU-XM-01-D/RBIA-3340-01-4-D-34080-11441A1-2TC-001/B1
私が欲しいものは得ることですこのエラー:
"Msg 537, Level 16, State 3, Line 1 Invalid length parameter passed to the LEFT or SUBSTRING function."
私は誤って-1
を-0.5
に変更しましたが、正常に動作しました。
SELECT Substring([parent_id],1,
CHARINDEX('/B',parent_id,25)-0.5)
FROM [c3d_aug].[dbo].[atta_properties]
誰かが理由を説明できますか?上記のメインストリングにスペースは含まれていないことに注意してください。
あなたの例では、CHARINDEXが60を返しています。 –
宣言@Parentid varchar(max)= 'RBIA-3340-CU-XM-01-D/RBIA-3340-01-4-D-34080-11441A1-2TC -001/B1 ' select charindex('/B '、@ parentid) - 返品60 サブストリングを選択します(@ parentid、1、charindex('/B '、@ parentid) - 1) –