sql - 用 00 或 0 替换任何包含“00”或“0”的字符串(在 SQL Server 中处理双引号)
问题描述
我在列中的输出当前有:
药丸类型 |
---|
“00”素食胶囊:( |
“0”素食胶囊:( |
“0”明胶胶囊:( |
“恐龙”:( |
我需要只用双引号之间包含的内容替换整个字符串,这是我想要的结果:
药丸类型 |
---|
00 |
0 |
0 |
恐龙 |
我是 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 表达式。
推荐阅读
- jquery - document.ready 上的语法错误
- random - 从多元法线绘制,带有“genmn”和“setgmn”
- javascript - 在 JavaScript 中访问数组中的值
- kentico - Kentico - 来自 facebook Web 部分的用户个人资料图片
- c - MISRA 19.4 说明
- r - 如何从光栅文件(如 .jpeg、.jpg、.png、.gif)中抓取表格并保存为 excel 格式?
- arrays - Ruby - 存储在数组中并返回所有值
- node.js - 在Mongodb中存储最多2个小数位的数字?
- sharepoint - Powerapps 是否在 Sharepoint on prem 列表中可用的编辑表单上添加附件
- jakarta-ee - 如何使用 tomcat 提供静态内容?