單純是括號的話,Replace兩次 雖然說有點醜
select REPLACE (REPLACE (a4, '(', ''), ')', '') from a
SUBSTRING(欄位名稱,2,LEN(欄位長度)-2)
去頭去尾的概念
DECLARE @Str NVARCHAR(10) = '(12345678)'
SELECT SUBSTRING(@Str,2,LEN(@Str)-2)
用正則吧
SELECT REGEXP_REPLACE(itemname,'[()]','') FROM `test`
想拿掉幾個就幾個
ps:我沒注意到是mssql。這是mysql的。就當參考吧。
使用 replace 兩次,或是掐頭去尾,都是經典的方式.
另外有 translate() 函數, 看發問者標籤,可以看以下
https://docs.microsoft.com/zh-tw/sql/t-sql/functions/translate-transact-sql?view=sql-server-ver15
我用 Postgresql 也是有一樣的函數, 技巧就在 第三組參數,不放空白字串
, 就不是替換成空白了. 與 w4560000 回答的replace() 也是一樣的方式.
select translate('(XXXXXABC)', '()', '')
, translate('(XXXXXABC)', '()', ' ') as "使用雙空白"
, translate('(XXXXXABC)', '()', '<>') as "使用<>";
+-----------+------------+------------+
| translate | 使用雙空白 | 使用<> |
+-----------+------------+------------+
| XXXXXABC | XXXXXABC | <XXXXXABC> |
+-----------+------------+------------+
(1 row)