2011-05-03 166 views
2

我有表Table1。隨着場f1, f2在sql中更新查詢

表中的值是這樣的(值包含引號)

"Hello1", "ok1" 
"Hello2", "ok2" 

我需要一個更新查詢,使其從值 刪除引號,它應該看起來像

Hello1, ok1 
Hello2, ok2 
+0

什麼數據庫系統,您使用的? – yan 2011-05-03 21:59:53

+0

iam使用sql數據庫 – Linto 2011-05-03 22:00:39

+0

有很多SQL數據庫..您使用的是什麼數據庫引擎?即MySQL,PostgreSQL,Oracle等 – yan 2011-05-03 22:01:02

回答

3

使用替換功能去除雙引號。

UPDATE Table1 set f1 = REPLACE(f1,'"',''), f2 = REPLACE(f2,'"',''); 
+0

您可以編寫完整的查詢來獲取我需要的輸出請 – Linto 2011-05-03 22:07:27

+0

運行更新後,它只是一個問題選擇列:SELECT f1,f2 FROM Table1 – 2011-05-03 22:09:58

+0

@ user310850這就是整個事情,除非你想添加一個地方 – 2011-05-03 22:10:32

0
Update Table1 
Set f1 = Case 
      When f1 Like '"%' And f1 Like '%"' Then Substring(f1,2,Len(f1)-2) 
      When f1 Like '"%' Then Substring(f1,1,Len(f1)-1) 
      When f1 Like '%"' Then Substring(f1,2,Len(f1)-1) 
      Else f1 
      End 
    , f2 = Case 
      When f2 Like '"%' And f2 Like '%"' Then Substring(f2,2,Len(f2)-2) 
      When f2 Like '"%' Then Substring(f2,1,Len(f2)-1) 
      When f2 Like '%"' Then Substring(f2,2,Len(f2)-1) 
      Else f2 
      End 
0

我認爲這可能取決於各種SQL,但在MySQL中你可以這樣做:

UPDATE Table1 SET f1 = TRIM(BOTH '"' FROM f1), f2 = TRIM(BOTH '"' FROM f2); 
0

您可以使用substringlen只得到字符串的一部分。

使用此更新語句來改變你的表

update Table1 set 
    f1 = substring(f1, 2, len(f1)-2), 
    f2 = substring(f2, 2, len(f2)-2) 

的內容。如果你只是想更改查詢的輸出。如果你只想刪除,你可以做到這一點

select 
    substring(f1, 2, len(f1)-2), 
    substring(f2, 2, len(f2)-2) 
from Table1 
2

周邊報價使用:

UPDATE Table1 SET 
f1 = SUBSTRING(f1, 2, LEN(f1)-2), 
f2 = SUBSTRING(f2, 2, LEN(f2)-2) 

如果要刪除所有引號(包括中間引號)使用方法:

UPDATE Table1 set f1 = REPLACE(f1,'"',''), f2 = REPLACE(f2,'"','') 

然後得到最終的輸出,你可以使用:

SELECT * FROM Table1