我试图通过从同一个表中提供一个列表数据来更新表中的两列。下面是我想用来更新这两列的格式
LOGIN EMAIL
----- -----
5717-9889-0001@xxxx.com 5717-9889-0001@xxxx.com
5717-9889-0002@xxxx.com 5717-9889-0002@xxxx.com
5717-9889-0003@xxxx.com 5717-9889-0003@xxxx.com
下面是我写了一半的问题。实际上我不确定这是正确的方式,因为我已经从另一个线程中引用了这个。显然这是不正确的。
DECLARE @IncrementValue1 INT
DECLARE @IncrementValue2 INT
SET @IncrementValue1 = 0001
SET @IncrementValue2 = 0001
UPDATE
USERTEST
SET
LOGIN = '5717-9889-' + @IncrementValue1 + '@xxxx.com',
EMAIL = '5717-9889-' + @IncrementValue2 + '@xxxx.com'
WHERE
USERID IN ( SELECT
USERID
FROM
USERTEST
WHERE
LOGIN IN ('advw@12233318007262',
'caeqveewe',
'zxy@vdv',
'zstclair',
'zpasigna',
'zoe_tadvadv',
'zmadvadvadv',
'zadvadvadv',
'zielinsm@advadvadv.com',
'zhouxinhy',
'ZHEJIANG@BBAGGS',
'ZHE@avadvadv'))
谢谢你的帮助
期望的结果应该是这样的。我有大约200+ ID每个文件
LOGIN EMAIL
----- -----
5717-9889-0001@xxxx.com 5717-9889-0001@xxxx.com
5717-9889-0002@xxxx.com 5717-9889-0002@xxxx.com
5717-9889-0003@xxxx.com 5717-9889-0003@xxxx.com
5717-9889-0004@xxxx.com 5717-9889-0004@xxxx.com
5717-9889-0005@xxxx.com 5717-9889-0005@xxxx.com
5717-9889-0006@xxxx.com 5717-9889-0006@xxxx.com
5717-9889-0007@xxxx.com 5717-9889-0007@xxxx.com
1条答案
按热度按时间ws51t4hk1#
你可以使用
row_number()
来获取非法标识,并使用LPAD
将前导零添加到这些整数中:如果需要连接两个字符串,请使用
||
(+
是加法运算符)如果你想从11开始,例如将10添加到
row_number()
:LPAD(10 + row_number() over(), 4, '0' )
Demo here