Hier sind ein paar mögliche Lösungen, je nach Ihren Bedürfnissen.
T-SQL
DECLARE @text varchar(100) = '1;#Jackson, Michael (X)', @clean_text varchar(100)
SELECT @clean_text = RTRIM(SUBSTRING(@text, CHARINDEX('#', @text) + LEN('#'),
CHARINDEX('(X)', @text, CHARINDEX('#', @text)) - (CHARINDEX('#', @text) + LEN('#'))))
SELECT @clean_text
C#
string text = "1;#Jackson, Michael (X)", clean_text = "", hash = "#", x = "(";
clean_text = text.Substring(text.IndexOf(char.Parse(hash)) + hash.Length,
text.IndexOf(char.Parse(x), text.IndexOf(char.Parse(hash))) - (text.IndexOf(char.Parse(hash)) + hash.Length)).Trim();
Console.WriteLine(clean_text);
SSIS
RTRIM(SUBSTRING(CreatedBy, FINDSTRING(CreatedBy, "#", 1) + LEN("#"), FINDSTRING(CreatedBy, "(X)", 1) - (FINDSTRING(CreatedBy, "#", 1) + LEN("#"))))
SSIS mit oder ohne (X)
FINDSTRING(CreatedBy,"(X)",1) > 0 ? RTRIM(SUBSTRING(CreatedBy,FINDSTRING(CreatedBy,"#",1) + LEN("#"),FINDSTRING(CreatedBy,"(X)",1) - (FINDSTRING(CreatedBy,"#",1) + LEN("#")))) : RTRIM(SUBSTRING(CreatedBy,FINDSTRING(CreatedBy,"#",1) + LEN("#"), LEN(CreatedBy)+1 - (FINDSTRING(CreatedBy,"#",1) + LEN("#"))))
Ist das führende Muster immer digit-semicolon-sharp oder variiert es? Ist das nachfolgende Muster immer openparen-X-closeparen? – billinkc
Wahrscheinliche Duplikate [ex1] (http://stackoverflow.com/a/33023858/181965) [ex2] (http://stackoverflow.com/q/31122657/181965) [ex3] (http://stackoverflow.com/a/15176398/181965) – billinkc
@billinkc: Ja, das führende Muster ist immer Ziffer (s) -semicolon-sharp. Das nachfolgende Muster ist immer openparen-X-closeparen. – Rocky