gpt4 book ai didi

sql - 根据模式更新和替换字符串值

转载 作者:行者123 更新时间:2023-12-02 05:56:58 34 4
gpt4 key购买 nike

我面临一个复杂的 sql 更新案例,我不知道如何解决。

我有 nvarchar(32) 类型的列,它由诸如“952683174”之类的数字组成。我确实需要根据以下规则替换它的字符串:

  • 1 替换为 3
  • 2 替换为 5
  • 3 替换为 4
  • 4 替换为 1
  • 5 替换为 9
  • 6 替换为 8
  • 7 替换为 2
  • 8 替换为 3
  • 9 替换为 6

因此对表执行更新查询后,之前的列值“952683174”将变为“695834321”。

最佳答案

可以先将每个数字替换成另一个字符,然后再将字符替换成对应的数字,如下所示:

DECLARE @number nvarchar(32) = '952683174';

SELECT
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(REPLACE(
@number,
'1', 'A'),'2', 'B'),'3', 'C'),'4', 'D'),'5', 'E'),'6', 'F'),'7', 'G'),'8', 'H'),'9', 'I'),
'A', '3'),'B', '5'),'C', '4'),'D', '1'),'E', '9'),'F', '8'),'G', '2'),'H', '3'),'I', '6')

Demo

关于sql - 根据模式更新和替换字符串值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50112830/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com