SQL,搜索并替换列中的特定字符(切换“Z”和“Y”)?
我有一个序列号为FFMZR62TYY67的列SN 是否有SQL语句替换所有Y到Z和所有Z到Y=FFMYR62TZ67 谢谢你帮助我 这应该有效: 第一次将Y替换为1,将Z替换为2 再次用Z替换1,用Y替换2SQL,搜索并替换列中的特定字符(切换“Z”和“Y”)?,sql,postgresql,Sql,Postgresql,我有一个序列号为FFMZR62TYY67的列SN 是否有SQL语句替换所有Y到Z和所有Z到Y=FFMYR62TZ67 谢谢你帮助我 这应该有效: 第一次将Y替换为1,将Z替换为2 再次用Z替换1,用Y替换2 select replace(replace(replace(replace(SN,'Y','1'),'Z','2'),'1','Z'),'2','Y') select replace(replace(replace(replace(SN,'Y','$1'),'Z','%1'),'$1',
select replace(replace(replace(replace(SN,'Y','1'),'Z','2'),'1','Z'),'2','Y')
select replace(replace(replace(replace(SN,'Y','$1'),'Z','%1'),'$1','Z'),'%1','Y')
这应该起作用:
第一次将Y替换为1,将Z替换为2
再次用Z替换1,用Y替换2
select replace(replace(replace(replace(SN,'Y','1'),'Z','2'),'1','Z'),'2','Y')
select replace(replace(replace(replace(SN,'Y','$1'),'Z','%1'),'$1','Z'),'%1','Y')
这份声明就是你要找的。
由于要交换字母,因此需要先用虚拟字母替换一个字母。
像这样未经测试的事情:
UPDATE myTable t
SET SN = REPLACE(
REPLACE(
REPLACE(
t.SN,
'Y',
'?'),
'Z',
'Y'),
'?',
'Z')
??不应在原始字符串中该语句就是您要查找的语句。
select replace(replace((replace('FFMZR62TYY67','Z','!')),'Y','Z'),'!','Y')
由于要交换字母,因此需要先用虚拟字母替换一个字母。
像这样未经测试的事情:
UPDATE myTable t
SET SN = REPLACE(
REPLACE(
REPLACE(
t.SN,
'Y',
'?'),
'Z',
'Y'),
'?',
'Z')
??不应在原始字符串中Postgresql有一个函数translate用于此类内容:
select replace(replace((replace('FFMZR62TYY67','Z','!')),'Y','Z'),'!','Y')
select translate(SN, 'YZ', 'ZY') from my_table;
第二个参数中的每个字符都将替换为第三个参数中的相应字符
下面是完整的文档:Postgresql有一个函数,用于翻译这类内容:
select translate(SN, 'YZ', 'ZY') from my_table;
第二个参数中的每个字符都将替换为第三个参数中的相应字符
这是完整的文档:您正在寻找翻译功能
declare @Input nvarchar(20) = N'FFMYR62TZZ67';
declare @Output nvarchar(20) = translate(@Input, N'YZ', N'ZY');
select [@Input]=@Input, [@Output]=@Output;
导致:
@Input @Output
-------------------- --------------------
FFMYR62TZZ67 FFMZR62TYY67
您正在寻找翻译功能
declare @Input nvarchar(20) = N'FFMYR62TZZ67';
declare @Output nvarchar(20) = translate(@Input, N'YZ', N'ZY');
select [@Input]=@Input, [@Output]=@Output;
导致:
@Input @Output
-------------------- --------------------
FFMYR62TZZ67 FFMZR62TYY67
但字符串中可能有1或2,不应替换。也许它适用于某些特殊字符§§$%!Thankso替换为一些特殊字符。因此,该语句应类似于更新表集SN=replacesn、'Y'、'$'、'Z'、'€'、'$'、'Z'、'€'、'Y'?这行吗?但字符串中可能有1或2,不应替换。也许它适用于某些特殊字符§§$%!Thankso替换为一些特殊字符。因此,该语句应类似于更新表集SN=replacesn、'Y'、'$'、'Z'、'€'、'$'、'Z'、'€'、'Y'?这行得通吗?更新表集SN=translateSN,'YZ','ZY';很好用!谢谢更新表集SN=translateSN,'YZ','ZY';很好用!谢谢