使用sql UPDATE查询更改字符串

时间:2015-01-07 16:37:48

标签: sql sql-server

问题

如何将以下代码从SGC1-0001[更改为SGC1-001

表格为stations,其中包含code列。 我需要使用更新查询,但不知道如何使用它。

列中有更多记录略有不同但我应该能够通过一个示例来解决这个问题。

样本数据

我想在大块中完成它们,但不是一次一个。

SGC1-0001[
SGC1-0002[
..
SGC1-0019[
SGC1-0021[
SGC2-0001[
SGC2-0002[
..
SGC2-0016[
SGC2-0017[
SGC3-0003[
SGC3-0004[
...
SGC4-0018[
SGC4-0021[
SGC4-0022[
SGC4-0025[
SGC4-0029[

逻辑(伪代码)

Delete first 0 and last [ from all

2 个答案:

答案 0 :(得分:3)

如果您想要修剪该列中所有记录的最后一个字符以及删除前导0,则应遵循以下规则:

UPDATE stations 
SET    code = REPLACE(LEFT(code, LEN(code) - 1), '-0', '-')

如果您只想替换前导0,则应执行以下操作:

UPDATE stations 
SET    code = REPLACE(code, '-0', '-')

此外,以下内容可能会引起关注:

String Functions

答案 1 :(得分:0)

试试这个,更新查询

因为您的所有代码最后都有'['',所以您可以使用此查询。它将删除所有记录中'['之后的最后'-'和前0

UPDATE stations
SET  CODE = LEFT(replace(code,right(code,1),''),4) + '-'+
            RIGHT(RIGHT(replace(code,right(code,1),''),4),3)

它将取代 SGC1-0029[SGC1-029 AND SGC1-0001[SGC1-001

最好引用一些sql basic tutorials