Código SQL:
Ver originalCREATE TABLE #temp
(
dato VARCHAR(200)
)
INSERT INTO #temp (dato) VALUES ('mi casa esta hasta por aca (puerta azulada y que mas quieres que diga) mas texto por aca')
INSERT INTO #temp (dato) VALUES ('mi casa esta (hasta)')
INSERT INTO #temp (dato) VALUES ('mi casa esta)')
INSERT INTO #temp (dato) VALUES ('mi casa esta(')
INSERT INTO #temp (dato) VALUES ('mi casa esta')
SELECT
CASE
WHEN
isnull(charindex('(',dato),0)>=1 AND isnull(charindex(')',dato),0)>=1 THEN
SUBSTRING(dato,charindex('(',dato)+1,(charindex(')',dato)-charindex('(',dato))-1)
ELSE 'sin parentesis'
END AS cortada, dato FROM #temp
Ejemplo desde la tabla #temp con los diferentes valores cuando no tiene parentesis te presenta en el resultado "sin parentesis"
y para el update
Código SQL:
Ver originalUPDATE tabla
SET
cadena=t1.cadena
FROM
(
SELECT
CASE
WHEN
isnull(charindex('(',dato),0)>=1 AND isnull(charindex(')',dato),0)>=1 THEN
SUBSTRING(dato,charindex('(',dato)+1,(charindex(')',dato)-charindex('(',dato))-1)
ELSE 'sin parentesis'
END AS cadena, dato FROM #temp
) AS t1
Saludos!