`
javababy1
  • 浏览: 1171306 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

不按先后顺序比较字符串序列是否相同(动态SQL)

阅读更多
/**//*
*功能:不按先后顺序比较字符串序列是否相同*
*适用:SQLServer2000/SQLServer2005*
*返回:1相同0不相同*
*作者:Flystone*
*描述:学习Limpire(昨夜小楼)的方法后做一个动态SQL的*
*/


CREATEprocsp_CompareString
@Str1varchar(100),
@Str2varchar(100),
@Splitvarchar(10),
@retintoutput
AS
BEGIN

declare@Lenint,@Subvarchar(100)

if@Str1=@Str2return(1)
iflen(@Str1)<>len(@Str2)orlen(replace(@Str1,@Split,''))<>len(replace(@Str2,@Split,''))
begin
set@ret=0
return
end

set@str1='select'''+replace(@str1,@Split,'''ascolunionallselect''')+''''
set@str2='select'''+replace(@str2,@Split,'''ascolunionallselect''')+''''

declare@snvarchar(4000)
set@s='
ifexists(select1from(
'+@str1+')awherenotexists(select1from('+@str2+')bwherea.col=b.col)
or
exists(select1from(
'+@str2+')awherenotexists(select1from('+@str1+')bwherea.col=b.col)
))
select@ret=0
else
select@ret=1
'

execsp_executesql@s,N'@retintoutput',@retoutput


END
GO
declare@retint
execsp_CompareString'a,b,c','b,c,a',',',@retout

select@ret
execsp_CompareString'a,b,c','b,c,c,a',',',@retout

select@ret

dropprocsp_CompareString

/**//*


-----------
1

(所影响的行数为1行)


-----------
0

(所影响的行数为1行)
*/

分享到:
评论

相关推荐

    SQL计算字符串中最大的递增子序列的方法

    求字符串中最大的递增子序列 数据库环境:SQL SERVER 2005 如题,求字符串“abcbklmnodfghijkmer”中最大的递增子序列。这个字符串有点特别, 只由26个小写字母a-z组成。 大概思路如下: 1.将字符串转到一列存储,并...

    MySQL中字符串函数详细介绍

    符串或串(String)是由零个或多个字符组成的有限序列。一般记为 s=’a1a2•••an'... 下面我们来看看MySQL中的字符串函数 假如结果的长度大于 max_allowed_packet 系统变量的最大值时,字符串值函数的返回值为NULL。 对

    Microsoft SQL Server 2005 Express Edition SP3

    由于这两个产品都依赖于相同版本的 .NET Framework,因此必须按照以下顺序卸载它们: SQL Server Express Visual Studio 2005 .NET Framework 2.0 [顶部] 3.13 维护模式下将提示输入 Setup.exe 的路径 如果...

    达梦数据库_SQL语言手册

    达梦数据库_SQL语言手册.pdf 数据库快照定义语句 数据库快照删除语句 第章数据查询语句和全文检索语句 单表查询 简单查询 带条件查询 集函数 情况表达式 连接查询 子查询 标量子查询 表子查询 派生表子...

    Microsoft SQL Server 2008技术内幕:T-SQL查询(第二卷)

    5.3.2 字符串查找 5.4 一个实际的应用程序 5.4.1 识别测量数据的趋势 5.4.2 LISLP算法的复杂度 5.4.3 用T-SQL解决最长上升子序列的长度问题 5.5 总结 第6章 子查询、表表达式和排名函数 6.1 子查询 6.1.1 ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    varchar2 1~4000字节 可变长度字符串,与CHAR类型相比,使用VARCHAR2可以节省磁盘空间,但查询效率没有char类型高 数值类型 Number(m,n) m(1~38) n(-84~127) 可以存储正数、负数、零、定点数和精度为38位的浮点数...

    SQL性能优化

     以上四个SQL在ORACLE分析整理之后产生的结果及执行的时间是一样的,但是从ORACLE共享内存SGA的原理,可以得出ORACLE对每个SQL 都会对其进行一次分析,并且占用共享内存,如果将SQL的字符串及格式写得完全相同则...

    SQLServer2008技术内幕T-SQL查询包含源代码及附录A

    5.3.2 字符串查找225 5.4 一个实际的应用程序226 5.4.1 识别测量数据的趋势226 5.4.2 LISLP算法的复杂度226 5.4.3 用T-SQL解决最长上升子序列的长度问题227 5.5 总结229 第6章 子查询、表表达式和排名函数231 6.1 ...

    Microsoft+SQL+Server+2008技术内幕:T-SQL查询_源代码及附录 中文版

    5.3.2 字符串查找225 5.4 一个实际的应用程序226 5.4.1 识别测量数据的趋势226 5.4.2 LISLP算法的复杂度226 5.4.3 用T-SQL解决最长上升子序列的长度问题227 5.5 总结229 第6章 子查询、表表达式和排名函数231 ...

    PL/SQL Developer8.04官网程序_keygen_汉化

     varchar2 用来存储变长的字符串,其使用语法为: varchar2[(size)] 其中size为可选,表示该字符串所能存储的最大长度。 在PL/SQL中声明变量与其他语言不太一样,它采用从右往左的方式声明,比如声明一个number类型...

    SQLServer2008查询性能优化 2/2

    9.8.4 实现准备/执行模式以避免重传查询字符串 253 9.8.5 避免即席查询 253 9.8.6 对于动态查询sp_executesql优于EXECUTE 253 9.8.7 小心地参数化查询的可变部分 254 9.8.8 不要允许查询中对象的隐含解析 254 ...

    SQLServer2008查询性能优化 1/2

    9.8.4 实现准备/执行模式以避免重传查询字符串 253 9.8.5 避免即席查询 253 9.8.6 对于动态查询sp_executesql优于EXECUTE 253 9.8.7 小心地参数化查询的可变部分 254 9.8.8 不要允许查询中对象的隐含解析 254 ...

    Visual C++ 2005入门经典--源代码及课后练习答案

    4.1.4 字符数组和字符串处理 147 4.1.5 多维数组 150 4.2 间接数据存取 153 4.2.1 指针的概念 153 4.2.2 声明指针 154 4.2.3 使用指针 155 4.2.4 初始化指针 157 4.2.5 sizeof运算符 162 4.2.6 ...

    XQuery权威指南(简码·扫描版)

     17.3 比较字符串  17.4 子字符串  17.5 得到字符串的长度  17.6 字符串连接和拆分  17.7 操作字符串  17.8 空白符和字符串  17.9 国际化考虑 第18章 正则式  18.1 正则式的结构  18.2 表示单个字符  18.3...

    Oracle课件.pdf

    5.3字符串连接操作符(||) 6. 高级查询 6.1 DISTINCT操作 6.2 NULL操作 6.3 IN 操作 6.4 BETWEEN…AND… 6.5 LIKE模糊查询 6.6 集合运算 6.7 连接查询 第3章 子查询和常用函数 1. 子查询 2. Oracle中的...

    Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3

    实例070 判断字符串是否为数字 89 实例071 验证IP地址的有效性 90 实例072 鉴别非法电话号码 91 4.3 操作字符串 92 实例073 根据标点符号对字符串进行分行 92 实例074 将字符串的每个字符进行倒序输出 94 实例075 ...

Global site tag (gtag.js) - Google Analytics