字符串处理示例--列车车次查询.sql

--列车车次信息数据表
CREATE TABLE tb(col varchar(100))
INSERT tb SELECT '1434/1/2/14'
UNION ALL SELECT '"10653(85707)"'
UNION ALL SELECT '"32608/7(83212/1)"'
UNION ALL SELECT '"50057()"'
UNION ALL SELECT '"T888(备)"'
UNION ALL SELECT '"21058(81404/3)0"'
UNION ALL SELECT '"22028(80404.10264)"'
UNION ALL SELECT '20037(80303.84006/9)'
UNION ALL SELECT '24031(80410/9'
UNION ALL SELECT '24048(80904)(23118)'
UNION ALL SELECT '22080(80406.83080.10284)'
UNION ALL SELECT '0031(5632  5629. 1434/1/2/14)'
CREATE FUNCTION dbo.f_CompSTR(
@str  varchar(8000),  --包含车次的字符串
@find varchar(50)     --要查询的值
)RETURNS bit
AS
BEGIN
 IF @str=@find RETURN(1)
 IF LEN(@str)<LEN(@find) RETURN(0)

 --替换掉车次字符串中的无效数据
 SELECT @str=REPLACE(@str,a,b)
 FROM(--采用表集的处理方法,是为了方便以后扩充处理其他无效数据
  SELECT a='"',b='')a

 --统计数据分隔符
 SELECT @str=REPLACE(@str,a,b)
 FROM(
  SELECT a='(',b='\' UNION ALL
  SELECT a=')',b='\' UNION ALL
  SELECT a='(',b='\' UNION ALL
  SELECT a=')',b='\' UNION ALL
  SELECT a=' ',b='\' UNION ALL
  SELECT a=' ',b='\' UNION ALL
  SELECT a='.',b='\' UNION ALL
  SELECT a='.',b='\')a

 --分拆比较处理
 DECLARE @s1 varchar(8000),@h varchar(100),@s varchar(100),@l int
 WHILE @str>''
 BEGIN
  SELECT @s1=LEFT(@str,CHARINDEX('\',@str+'\')-1),
   @str=STUFF(@str,1,CHARINDEX('\',@str+'\'),''),
   @h=LEFT(@s1,CHARINDEX('/',@s1+'/')-1),
   @l=LEN(@h)+1
  IF @h=@find RETURN(1)
  WHILE CHARINDEX('/',@s1+'/')>0
  BEGIN
   SELECT @s=LEFT(@s1,CHARINDEX('/',@s1+'/')-1),
    @s1=STUFF(@s1,1,CHARINDEX('/',@s1+'/'),'')
   IF LEN(@s)<@l
    SET @s=STUFF(@h,@l-LEN(@s),8000,@s)
   IF @find=CASE
     WHEN LEN(@s)<@l THEN STUFF(@h,@l-LEN(@s),8000,@s)
     ELSE @S END
    RETURN(1) 
  END
 END
 RETURN(0)
END
GO

--调用上述函数查询包含车次1434的记录
SELECT * FROM tb WHERE dbo. f_CompSTR(col,’143’)=1

转载于:https://www.cnblogs.com/dushu/archive/2012/05/18/2507906.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/462003.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

查找算法的总结

声明&#xff1a;以下内容来源于网络资料的学习和整理 一、查找技术分类 1、静态查找表技术&#xff08;顺序查找、二分查找、分块查找&#xff09; 2、动态查找表技术&#xff08;二叉查找树&#xff09; 3、哈希表技术&#xff08;哈希表技术&#xff09; 二、查找技术说明…

一个C程序的编译过程(Linux环境下Gcc)

一 以下是C程序一般的编译过程&#xff1a; 从图中看到&#xff1a; 将编写的一个c程序&#xff08;源代码 &#xff09;转换成可以在硬件上运行的程序&#xff08;可执行代码 &#xff09;&#xff0c;需要进行编译阶段 和链接这两个阶段。 其中&#xff0c; 1. 编译阶段先通…

python3 django连接mysql 数据库

详情参考&#xff1a; https://blog.csdn.net/weixin_33127753/article/details/89100552 https://imshusheng.com/python/216.html 报错环境 python3.6&#xff0c;django2.2&#xff0c;PyMySQL0.9.3……django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or…

redis 主从复制 [转]

一、Redis的Replication&#xff1a; 这里首先需要说明的是&#xff0c;在Redis中配置Master-Slave模式真是太简单了。相信在阅读完这篇Blog之后你也可以轻松做到。这里我们还是先列出一些理论性的知识&#xff0c;后面给出实际操作的案例。 下面的列表清楚的解释了Redis…

动态查找表之二叉搜索树

一、二叉搜索树&#xff08;BST&#xff09; 二叉搜索树&#xff08;二叉排序树&#xff09;定义如下&#xff1a; &#xff08;1&#xff09;一棵空树&#xff1b; &#xff08;2&#xff09;或者不是空树&#xff1a; 1&#xff09;若左子树不空&#xff0c;则左子树上所有…

Mysql数据导入导出

导出导入数据库导出mysqldump方法mysqldump -u用户名 -p密码名 database [table]> 目标文件导入mysql -uroot -prootuse databasesource 目标文件&#xff1b;PS: 这种方法是导出整个表数据&#xff0c;并且带着建表信息&#xff0c;假如导入的数据库有同名的表&#xff0c;…

2-10 就业课(2.0)-oozie:9、oozie与hue的整合,以及整合后执行MR任务

5、hue整合oozie 第一步&#xff1a;停止oozie与hue的进程 通过命令停止oozie与hue的进程&#xff0c;准备修改oozie与hue的配置文件 第二步&#xff1a;修改oozie的配置文件&#xff08;老版本的bug&#xff0c;新版本已经不需要了&#xff09;这一步我们都不需要做了 修改ooz…

Screen Painter 程序设计

一、Screen 的创建及维护, TCode:SE51 输入程序名称&#xff0c;单击【建立】&#xff0c; 程序1000为SAP预留屏幕号&#xff0c;屏幕号必须定义1000外的其他数字&#xff0c;且最多不超过四位&#xff0c; 本例定义屏幕为SAP预留屏幕号为&#xff1a;100 * 属性设置&#xff1…

完全图解VS2017安装过程并演示VS2017创建Linux项目和调试

VS2017个人免费版即社区官方下载地址为&#xff1a;https://download.microsoft.com/download/D/1/4/D142F7E7-4D7E-4F3B-A399-5BACA91EB569/vs_Community.exe 这是一个很小的在线下载安装器。VS2017安装变得人性化了&#xff0c;根据组件的分类&#xff0c;供安装用户选择&…

spring--打印hello--注解component--自动创建对象

1.创建 GroupId----项目目录&#xff08;com.javaspring&#xff09; Artifactid---项目名称(spring01qiuckstart) Version--版本默认 2.默认打开的pom.xml文件 编辑---编写spring核心项目依赖 <?xml version"1.0" encoding"UTF-8"?> <project …

菜鸟学数据库(四)——超键、候选键、主键、外键

这些年的一些经历告诉我&#xff0c;很多初学者搞不清超键、候选键等&#xff0c;被数据库中的各种键搞的一头雾水。下面就跟大家一起聊聊数据库中的那些键。 首先看看各种键的定义&#xff1a; 超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键 候选键(ca…

嵌入式C语言之struct内存分配分析

本文源于微信号《嵌入式ARM》。链接&#xff1a;http://mp.weixin.qq.com/s/j2mk6jY79nrJge2cDZVH_A 对结构MyStruct采用sizeof会出现什么结果呢&#xff1f;sizeof(MyStruct)为多少呢&#xff1f; 也许你会这样求&#xff1a;sizeof(MyStruct)sizeof(double)sizeof(char)sizeo…

open和fopen的区别

open和fopen的区别&#xff1a; 1.非缓冲文件系统缓冲文件系统是借助文件结构体指针来对文件进行管理&#xff0c;通过文件指针来对文件进行访问&#xff0c;既可以读写字符、字符串、格式化数据&#xff0c;也可以读写二进制数 据。非缓冲文件系统依赖于操作系统&#xff0c;通…

PostMessage发送字符串和结构体

2019独角兽企业重金招聘Python工程师标准>>> 1.首先定义消息变量 #define WM_POST_MSG WM_USER 2 2.增加消息处理函数 afx_msg LRESULT UpdateStatic(WPARAM wParam, LPARAM lParam); 3.增加消息映射 ON_MESSAGE(WM_POST_MSG,UpdateStatic) 当调用PostMessage函…

求一个数组的最长递减子序列 比如{9,4,3,2,5,4,3,2}的最长递减子序列为{9,5,4,3,2}...

目前想到的一个方法&#xff0c;就是用栈来寻找&#xff0c;说下思想&#xff1a;&#xff08;栈中的data为元素所在的位置&#xff0c;这意味着出栈和进栈的都是索引值&#xff0c;所以比较的时候根据索引找到其值后比较&#xff09; &#xff08;1&#xff09;栈为空&#xf…

SPI、I2C、UART(即串口)三种串行总线详解

以下内容均来源于网络资源的学习与整理&#xff0c;如有侵权请告知删除。 参考博客 几个串口协议学习整理 UART IIC SPI_mainn的博客-CSDN博客 SPI、I2C、UART三种串行总线的原理、区别及应用_嵌入式Linux,的博客-CSDN博客 RS-232 和 UART 之间有什么区别&#xff1f; - 知乎…

select()函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET

从别人的博客中转载过来了这一篇文章&#xff0c;经过重新编辑排版之后展现于此&#xff0c;做一个知识点保存与学习。select函数用于在非阻塞中&#xff0c;当一个套接字或一组套接字有信号时通知你&#xff0c;系统提供select函数来实现多路复用输入/输出模型&#xff0c;原型…

网络4 交换机终端命令

1、switch> 是用户模式 en/enable switch# 是特权模式 conf t/ configure temral switch(config)#是全局模式 int f0/1 /interface f0/1 switch (config-if)# 是接口模式2、show version 显示系统ISO 名称ctrlE 把光标移动到命令行结尾处ctrlA 把光标移动…

解决Office系列安装不上的办法

安装Office时提示“扩展属性不一致”的解决办法&#xff1a;使用系统自带的输入法&#xff0c;Win空格键就搞定了。转载于:https://blog.51cto.com/dreamerhan/1313823

用数据辅助设计-搜索中的实践

设计时不能单凭经验和直觉&#xff0c;因为涉及到的目标人群、场景、操作习惯的不同。为了获取更准确、有效的信息去辅助、检测设计&#xff0c;设计师会选择定性&#xff08;用户访谈、焦点小组&#xff09;和定量&#xff08;调研问卷、网站数据分析&#xff09;的方式进行用…