Ich habe diese Zeichenfolge in einer Spalte namens . Beispiel für die Zeichenfolgen, die dort vorhanden sind:Teilstring (..., ..., CHARINDEX (....) - 0.5) Funktion
RBIA-3340-CU-XM-01-D/RBIA-3340-01-4-D-34080-11441A1-2TC-001/B1
, was ich will zu bekommen:
RBIA-3340-CU-XM-01-D/RBIA-3340-01-4-D-34080-11441A1-2TC-001
ohne /B1
Wenn ich diesen Code schrieb:
SELECT Substring([parent_id], 1,
CHARINDEX('/B',parent_id,25)-1)
FROM [c3d_aug].[dbo].[atta_properties]
Ich habe Dieser Fehler:
"Msg 537, Level 16, State 3, Line 1 Invalid length parameter passed to the LEFT or SUBSTRING function."
Nach dem Test habe ich versehentlich geändert -1
zu -0.5
es hat gut funktioniert.
SELECT Substring([parent_id],1,
CHARINDEX('/B',parent_id,25)-0.5)
FROM [c3d_aug].[dbo].[atta_properties]
Kann jemand erklären warum?! Bitte beachten Sie, dass die oben angegebene Hauptsaite keine Leerzeichen enthält.
Nein, es ist CHARINDEX gibt 60 in Ihrem Beispiel zurück –
deklarieren @Parentid varchar (max) = 'RBIA-3340-CU-XM-01-D/RBIA-3340-01-4-D-34080-11441A1-2TC -001/B1' wählen charindex ('/ B', @parentid) - Liefert 60 select substring (@ parentid, 1, charindex ('/ B', @parentid) - 1) –