2011-05-03 149 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