在sql中更新查询

时间:2011-05-03 21:58:35

标签: sql sql-server

我有表Table1。使用字段f1, f2

表值类似(值包含引号)

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

我需要更新查询,以便从值中删除引号 它应该看起来像

 Hello1, ok1
 Hello2, ok2

5 个答案:

答案 0 :(得分:3)

使用“替换”功能去除双引号。

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

答案 1 :(得分: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

答案 2 :(得分: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

答案 3 :(得分:0)

我认为这可能取决于各种SQL,但在MySQL中你可以这样做:

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

答案 4 :(得分: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