我有一个可能以引号开头和结尾的字段。如果字符串以引号开头和结尾,我只想删除引号。如果字符串中存在引号,那么我希望保留它们。
如果字段确实以引号开头和结尾,我已经使用REVERSE
了和东西,但如果不是,它只返回null。
如果它不是以引号开头,我如何确保我仍然获得字段结果?
我有的:
REVERSE(STUFF(REVERSE(STUFF(fieldname, CHARINDEX('"', fieldname), LEN('"'), '')), CHARINDEX('"', REVERSE(STUFF(fieldname, CHARINDEX('"', fieldname), LEN('"'), '')), 1), 1, ''))
你可以试试这样的
DB<>小提琴
TRIM()
功能需要 SQL Server 2017。Randi 的答案完美无缺,如果您使用的是 SQL Server 2017 或更高版本, Akina的答案会更整洁,但在旧版本上,您可以使用更少的代码和更少的操作(如反向/东西)来做到这一点。鉴于此数据:
此查询产生相同的结果:
结果:
我假设仅以双引号开头或仅以双引号结尾的字符串也需要删除该单独的双引号。