mi sono bloccato con la sottostringa.Sottostringa SQL e ultimo indice di
In ingresso, ho una stringa che assomiglia a Sometext (123456)
. Quelle cifre alla fine sono casuali. Ho bisogno di ottenere solo il testo da quella stringa.
mi sono bloccato con la sottostringa.Sottostringa SQL e ultimo indice di
In ingresso, ho una stringa che assomiglia a Sometext (123456)
. Quelle cifre alla fine sono casuali. Ho bisogno di ottenere solo il testo da quella stringa.
Che ne dici di questo?
DECLARE @Data TABLE (Val VARCHAR(20))
INSERT @Data VALUES ('Sometext (123456)')
INSERT @Data VALUES ('')
INSERT @Data VALUES (NULL)
INSERT @Data VALUES ('S(123456)')
INSERT @Data VALUES ('(123456)')
SELECT
CASE
WHEN CHARINDEX('(', Val) > 0 THEN
RTRIM(SUBSTRING(val,1, CHARINDEX('(', Val) - 1))
ELSE Val
END
FROM @Data
Se si desidera solo la prima parte fino alla '(' si potrebbe provare
declare @t varchar(50)
set @t = 'function (12343)'
select rtrim(substring(@t,1, charindex('(', @t)-1))
E 'davvero dipende dal formato della stringa di input, ma qui è un approccio leggermente diverso utilizzando PATINDEX che restituirà la stringa fino a che non corrisponde a un carattere non AZ:.
declare @text varchar(500); set @text = 'Sometext (123456)'
select SUBSTRING(@text, 0, PATINDEX('%[^A-Z]%' , @text))
Se vogliamo rimuovere la sentenza e mantenere il numero che potremmo fare così
0.123.DECLARE @Text VARCHAR(MAX);
SET @Text = 'Sometext (123456)'
SELECT SUBSTRING(@Text, CHARINDEX(' ', @Text) + 1, LEN(@Text)) As TextOutput
Il risultato sarà: (123456)
altri esempi. Quindi vuoi "Sometext()" out o "Sometext"? Cosa succede se si dispone di "Sometext (123ABC456 )"? – gbn
Ho solo cifre all'interno delle parentesi graffe –