使用 sql UPDATE 查询更改字符串
Change string with sql UPDATE query
问题
如何将以下代码从 SGC1-0001[
更改为 SGC1-001
。
table 是 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
试试这个,更新查询
因为你所有的代码最后都有'['所以你可以使用这个查询。它将从所有记录
中删除 '-'
之后的最后一个 '['
和第一个 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
和
SGC1-0001[
至 SGC1-001
最好参考一些sql基础tutorials
如果您想要 trim 该列中所有记录的最后一个字符并删除前导 0,以下应该可以解决问题:
UPDATE stations
SET code = REPLACE(LEFT(code, LEN(code) - 1), '-0', '-')
如果您只想替换前导 0,则应执行以下操作:
UPDATE stations
SET code = REPLACE(code, '-0', '-')
此外,您可能对以下内容感兴趣:
问题
如何将以下代码从 SGC1-0001[
更改为 SGC1-001
。
table 是 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
试试这个,更新查询
因为你所有的代码最后都有'['所以你可以使用这个查询。它将从所有记录
中删除'-'
之后的最后一个 '['
和第一个 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
和
SGC1-0001[
至 SGC1-001
最好参考一些sql基础tutorials
如果您想要 trim 该列中所有记录的最后一个字符并删除前导 0,以下应该可以解决问题:
UPDATE stations
SET code = REPLACE(LEFT(code, LEN(code) - 1), '-0', '-')
如果您只想替换前导 0,则应执行以下操作:
UPDATE stations
SET code = REPLACE(code, '-0', '-')
此外,您可能对以下内容感兴趣: