在论坛中出现的比较难的sql问题:13(循环替换问题 过滤各种标点符号)
原文:在论坛中出现的比较难的sql问题:13(循环替换问题 过滤各种标点符号)
所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路。
去掉一个字段中的标点符号的SQL语句怎么写
http://bbs.csdn.net/topics/390621077?page=1#post-395850514
比如有一个字段 题名
1 水尼“十万”个为什么
2 当代工人:市场化的演变与趋势
3 当代画家 (东北卷)
想把这个字段中的标点符号去掉,请教各位大侠SQL 语句该怎么写。
我的解法是,通过新建一个符号表,里面存储要替换的各种符号,然后通过循环,把这些符号替换了,
如果数据多了,应该效率不太好:
-
if object_id('t') is not null
-
drop table t
-
go
-
-
create table t(id int,title nvarchar(100))
-
-
insert into t
-
select 1,'水尼“十万”个为什么' union all
-
select 2,'当代工人:市场化的演变与趋势' union all
-
select 3,'当代画家(东北卷)' union all
-
select 4,'当代画家:“北京篇:;”'
-
-
-
if object_id('symbol') is not null
-
drop table symbol
-
go
-
-
--建立一个标点符号的表,你可以往里面加各种你想替换的标点符号
-
create table symbol (n nvarchar(10));
-
-
insert into symbol
-
select '“' union all
-
select '”' union all
-
select ':' union all
-
select ';'
-
-
go
-
-
-
if exists(select * from sys.objects where name = 'fn_replace_symbol')
-
drop function dbo.fn_replace_symbol;
-
go
-
-
create function dbo.fn_replace_symbol(@n nvarchar(1000))
-
returns nvarchar(1000)
-
as
-
begin
-
declare @i int;
-
declare @count int;
-
-
set @i = 1
-
set @count = (select count(*) from symbol);
-
-
while @i <= @count
-
begin
-
;with t
-
as
-
(
-
select n,
-
row_number() over(order by @@servername) as rownum
-
from symbol
-
)
-
-
select @n = replace(@n,(select n from t where rownum = @i),'')
-
set @i = @i + 1
-
end
-
-
return @n
-
end
-
go
-
-
--替换效果
-
select * ,
-
dbo.fn_replace_symbol(title) as 替换完后的字符
-
from t
-
/*
-
id title 替换完后的字符
-
1 水尼“十万”个为什么 水尼十万个为什么
-
2 当代工人:市场化的演变与趋势 当代工人市场化的演变与趋势
-
3 当代画家(东北卷) 当代画家(东北卷)
-
4 当代画家:“北京篇:;” 当代画家北京篇
-
*/
在论坛中出现的比较难的sql问题:13(循环替换问题 过滤各种标点符号)的更多相关文章
- 在论坛中出现的比较难的sql问题:46(日期条件出现的奇怪问题)
原文:在论坛中出现的比较难的sql问题:46(日期条件出现的奇怪问题) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得有 ...
- 在论坛中出现的比较难的sql问题:45(用户在线登陆时间的小时、分钟计算问题)
原文:在论坛中出现的比较难的sql问题:45(用户在线登陆时间的小时.分钟计算问题) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. ...
- 在论坛中出现的比较难的sql问题:44(触发器专题 明细表插入数据时调用主表对应的数据)
原文:在论坛中出现的比较难的sql问题:44(触发器专题 明细表插入数据时调用主表对应的数据) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决 ...
- 在论坛中出现的比较难的sql问题:42(动态行转列 考勤时间动态列)
原文:在论坛中出现的比较难的sql问题:42(动态行转列 考勤时间动态列) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.
- 在论坛中出现的比较难的sql问题:41(循环替换 循环替换关键字)
原文:在论坛中出现的比较难的sql问题:41(循环替换 循环替换关键字) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.
- 在论坛中出现的比较难的sql问题:40(子查询 销售和历史库存)
原文:在论坛中出现的比较难的sql问题:40(子查询 销售和历史库存) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得有 ...
- 在论坛中出现的比较难的sql问题:39(动态行转列 动态日期列问题)
原文:在论坛中出现的比较难的sql问题:39(动态行转列 动态日期列问题) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉 ...
- 在论坛中出现的比较难的sql问题:38(字符拆分 字符串检索问题)
原文:在论坛中出现的比较难的sql问题:38(字符拆分 字符串检索问题) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方法了. 所以,觉得 ...
- 在论坛中出现的比较难的sql问题:37(动态行转列 某一行数据转为列名)
原文:在论坛中出现的比较难的sql问题:37(动态行转列 某一行数据转为列名) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.
随机推荐
- Comparison and difference for Default geodatabase,Current workspace,Scratch workspace,Home Folder
Comparison and difference for Default geodatabase,Current workspace,Scratch workspace,Home Folder 商务 ...
- Spark获取DataFrame中列的几种姿势--col,$,column,apply
1.doc上的解释(https://spark.apache.org/docs/2.1.0/api/java/org/apache/spark/sql/Column.html) df("c ...
- @ServeletComponentScan和@ComponentScan的区别
一.SpringBoot中使用Servlet在SpringBootApplication上使用@ServletComponentScan注解后,Servlet.Filter.Listener可以直接通 ...
- Spring Cloud简介 4.1
什么是Spring Cloud Spring Cloud是在Spring Boot的基础上构建的,用于简化分布式系统构建的工具集.该工具集为微服务架构中所涉及的配置管理.服务发现.智能路由.断路器.微 ...
- MySQL修改表名示例
首先,我们新建一个名为test_table的表: drop table if exists test_table; create table test_table select TABLE_SCHEM ...
- 【Leetcode_easy】844. Backspace String Compare
problem 844. Backspace String Compare solution1: class Solution { public: bool backspaceCompare(stri ...
- 【JQuery插件】扑克正反面翻牌效果
里面有两个demo,支持X横向和Y纵向翻转两个效果. 对元素的布局有一定的讲究,需要分析一下demo的css. 默认翻转速度为80,不要大于100ms. <!DOCTYPE> <ht ...
- 推荐Pi(π)币,相当于比特币手机挖矿版
我为什么推荐这个? 说实话,之所以发出来还是因为如果用我的邀请码注册,双方的挖矿速度都会增加些,我的邀请码:leneing,有问题可以咨询我. Pi币简介 1.在这里强烈推荐Pi币,相当于比特币手机挖 ...
- js禁止退出当前页面
禁止用户退出网页,就一个添加窗体历史状态方法,代码很简单,但是建议大家不要去使用,会给用户带来不友好的体验,我这里只是学习这种方法,看到自己代码上有也知道在哪里改变这些代码,所以分享一下: 实现原理: ...
- 《ucore lab2》实验报告
资源 ucore在线实验指导书 我的ucore实验代码 练习1:实现 first-fit 连续物理内存分配算法 题目 在实现first fit 内存分配算法的回收函数时,要考虑地址连续的空闲块之间的合 ...