将任何包含“00”或“0”的字符串替换为 00 或 0(在 SQL 服务器中处理双引号)
Replacing any String that contains "00" or "0" with 00 or 0 (Handling double quotes in SQL Server)
我在专栏中的输出目前有:
Pill Type
"00" Vegetarian Capsules : (
"0" Vegetarian Capsules : (
"0" Gelatin Capsules : (
"DINO" : (
我只需要用双引号之间的内容替换整个字符串,这是我想要的结果:
Pill Type
00
0
0
DINO
我是 SQL 的新手,之前会通过执行 CASE 语句甚至嵌套的 REPLACE() 语句来清理一些字符串
现在有双引号,太多的短语需要很长时间才能写出来替换每个,而且只需要双引号中包含的内容让我卡住了,我不太明白解决方案。
这是一个演示如何获得所需结果的脚本:
declare @tmp as table (s nvarchar(100) not null);
insert into @tmp values ('"00" Vegetarian Capsules : (');
insert into @tmp values ('"0" Vegetarian Capsules : (');
insert into @tmp values ('"0" Gelatin Capsules : (');
insert into @tmp values ('"DINO" : (');
select SUBSTRING(s, charindex('"', s) + 1, len(s) - charindex('"', reverse(s)) - charindex('"', s)) from @tmp;
但是,请注意,如果不存在双引号,则整个字符串都是结果。如果您需要解决这个问题,您可以使用 CASE 表达式。
我在专栏中的输出目前有:
Pill Type |
---|
"00" Vegetarian Capsules : ( |
"0" Vegetarian Capsules : ( |
"0" Gelatin Capsules : ( |
"DINO" : ( |
我只需要用双引号之间的内容替换整个字符串,这是我想要的结果:
Pill Type |
---|
00 |
0 |
0 |
DINO |
我是 SQL 的新手,之前会通过执行 CASE 语句甚至嵌套的 REPLACE() 语句来清理一些字符串
现在有双引号,太多的短语需要很长时间才能写出来替换每个,而且只需要双引号中包含的内容让我卡住了,我不太明白解决方案。
这是一个演示如何获得所需结果的脚本:
declare @tmp as table (s nvarchar(100) not null);
insert into @tmp values ('"00" Vegetarian Capsules : (');
insert into @tmp values ('"0" Vegetarian Capsules : (');
insert into @tmp values ('"0" Gelatin Capsules : (');
insert into @tmp values ('"DINO" : (');
select SUBSTRING(s, charindex('"', s) + 1, len(s) - charindex('"', reverse(s)) - charindex('"', s)) from @tmp;
但是,请注意,如果不存在双引号,则整个字符串都是结果。如果您需要解决这个问题,您可以使用 CASE 表达式。