Sql-Server
刪除前導和尾隨引號
我有一個可能以引號開頭和結尾的欄位。如果字元串以引號開頭和結尾,我只想刪除引號。如果字元串中存在引號,那麼我希望保留它們。
如果欄位確實以引號開頭和結尾,我已經使用
REVERSE
了和東西,但如果不是,它只返回null。如果它不是以引號開頭,我如何確保我仍然獲得欄位結果?
是)我有的:
REVERSE(STUFF(REVERSE(STUFF(fieldname, CHARINDEX('"', fieldname), LEN('"'), '')), CHARINDEX('"', REVERSE(STUFF(fieldname, CHARINDEX('"', fieldname), LEN('"'), '')), 1), 1, ''))
你可以試試這樣的
SELECT CASE WHEN RIGHT(fieldname,1) = '"' AND LEFT(fieldname,1) = '"' THEN REVERSE(STUFF(REVERSE(STUFF(fieldname, 1, 1, '')), 1, 1, '')) WHEN RIGHT(fieldname,1) = '"' THEN REVERSE(STUFF(REVERSE(fieldname), 1, 1, '')) WHEN LEFT(fieldname,1) = '"' THEN STUFF(fieldname, 1, 1, '') ELSE fieldname END as fieldname FROM #temp;
SELECT TRIM(' "' FROM fieldname) fieldname FROM tablename
TRIM()
功能需要 SQL Server 2017。