SQL输出:是否可以从自身重新计算列的值?

时间:2016-07-06 02:05:50

标签: sql sql-server

例如,我的表格中有一列如下:

|镇|村庄|

其中town = string,village = string

好吧,我想让村庄= SUBSTRING(村庄,1,(LEN(村庄)-2))

| town | village      |
| Yang | ChenzhuangAA |
| Ling | XianyangAA   |

所以,我想删除每一行村庄的最后两个字符。我想要的表格如下:

| town | village      |
| Yang | Chenzhuang   |
| Ling | Xianyang     |

我可以知道一个GO语法是如何进行的吗?

请指导我。非常感谢你。

2 个答案:

答案 0 :(得分:3)

只需使用LEFT()和字符串的长度减去2

UPDATE yourtable
SET    village = LEFT(village, LEN(village) - 2)

答案 1 :(得分:0)

其他方式,如果所有内容都以“AA”形式出现,那么它可以工作,AA来自字符串,它可以处理这些类型的数据

declare @Table1 TABLE 
    (town varchar(4), village varchar(15))
;

INSERT INTO @Table1
    (town, village)
VALUES
    ('Yang', 'ChenzhuaangAA'),
    ('Yang', 'ChenzhungAA'),
    ('Ling', 'XianyangAA')
;

脚本:

   update @Table1 
set village = REPLACE(RTRIM(REPLACE(village,'AA',' ')),' ','aa')  
  select * from @Table1