在论坛中出现的比较难的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(动态行转列 某一行数据转为列名) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.
随机推荐
- GIS地理处理工具案例教程-成本距离
GIS地理处理工具案例教程-成本距离 关键词:最短路径,成本路径,最佳路径,最优路径,路径分析,选线分析 商务合作,科技咨询,版权转让:向日葵,135-4855__4328,xiexiaokui#qq ...
- Spring AOP Log
spring aop action中验证用户登录状态 - CASER_HDMI的博客 - CSDN博客https://blog.csdn.net/CASER_HDMI/article/details/ ...
- nginx: [emerg] open() "/var/run/nginx.pid" failed (13: Permission denied)
现象 1.centos6.9 用rpm包安装nginx 2.修改Nginx的多个配置文件和配置项 3.service nginx restart 报错: nginx: [emerg] open() & ...
- Windows下通过命令行 获取文件详细信息
@echo off echo version: wmic datafile where Name="C:\\Product\\File\\Release\\1.1.1\\File.exe&q ...
- flutter Checkbox 复选框组件
import 'package:flutter/material.dart'; class CheckboxDemo extends StatefulWidget { @override _Check ...
- eclipse默认指向WebContent目录修改为webRoot 设置说明【也适用于Eclipse启动MyEclipse项目】
转: eclipse默认指向WebContent目录修改为webRoot 设置说明 2014-07-02 17:42:58 落叶上的秋 阅读数 8618更多 分类专栏: Eclipse 问题 l ...
- 算法习题---5.3字典(Uva10815)
一:题目 给出一段英文,里面包含一些单词,空格和标点,单词不区分大小写,默认都为小写.按照字典序输出这些单词(这些单词不能有重复,字母全部变成小写) (一)样例输入 Adventures in Dis ...
- 【Mybatis】MyBatis之配置多数据源(十)
在做项目的过程中,有时候一个数据源是不够,那么就需要配置多个数据源.本例介绍mybatis多数据源配置 前言 一般项目单数据源,使用流程如下: 单个数据源绑定给sessionFactory,再在Dao ...
- Sq常用操作
sql创建表实例: CREATE TABLE mytable( id varchar(40) NOT NULL default '', userId varchar(40) NOT NULL defa ...
- 常见问题:MySQL/事务隔离
数据库并行产生的问题 A事务撤销时,将B事务更改的数据撤销. A事务提交时,将B事务更改的同行数据覆盖. 脏读:A事务读取到了B事务未提交的数据. 不可重复读:A事务中同查询语句不幂等,读到已更新数据 ...