Eu tenho um campo que pode começar e terminar com aspas. Eu só quero remover as aspas se a string começar e terminar com aspas. Se as aspas existirem dentro da string, desejo mantê-las.
Eu usei REVERSE
e outras coisas que funcionam se o campo começar e terminar com aspas, mas se não, ele apenas retorna null.
Como posso garantir que ainda obterei o resultado do campo se ele não começar com aspas?
O que eu tenho:
REVERSE(STUFF(REVERSE(STUFF(fieldname, CHARINDEX('"', fieldname), LEN('"'), '')), CHARINDEX('"', REVERSE(STUFF(fieldname, CHARINDEX('"', fieldname), LEN('"'), '')), 1), 1, ''))
Você poderia tentar algo assim
DB<>Fiddle
TRIM()
função requer SQL Server 2017.A resposta de Randi funciona perfeitamente, e a de Akina é muito mais organizada se você estiver no SQL Server 2017 ou melhor, mas em versões mais antigas você pode fazer isso com um pouco menos de código e menos operações como reverso/coisas. Dados esses dados:
Esta consulta produz os mesmos resultados:
Resultados:
Estou assumindo que uma string começando com aspas duplas ou terminando apenas com aspas duplas também precisa que as aspas duplas solitárias sejam removidas.