- 浏览: 589803 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (423)
- windows2003 (1)
- exception (3)
- java (91)
- eclipse (14)
- java web (3)
- javaScript (11)
- 装机 (1)
- sql (34)
- outlook (1)
- html (8)
- JAVA 不同区域服务器引起的乱码解决 (2)
- strtus (3)
- http (1)
- 设计模式 (4)
- Java对存储过程的调用方法 (0)
- java-数据库操作 (0)
- jdbc (7)
- dwr (2)
- 软件版本号 (1)
- jxls (1)
- ExtJS (3)
- Ajax (1)
- git (12)
- linux (20)
- mysql (14)
- maven (16)
- easyui (1)
- 日常备注 (1)
- spring (9)
- others (1)
- windows快捷键 (1)
- 工作备注 (9)
- 工作杂项 (0)
- photoshop (1)
- 开发环境配置 (0)
- jboss (1)
- 报表 (1)
- 图表 (1)
- fckeditor (1)
- 调试bug (2)
- 口令 (1)
- css (2)
- mongodb (7)
- restful (1)
- jsp (5)
- jpa (2)
- bug (1)
- js (2)
- Json (1)
- POI (1)
- xml (2)
- webstorm (1)
- java swing (1)
- ubuntu (3)
- mongo (27)
- 自我学习 (0)
- 草稿 (0)
- 单元测试 (1)
- 数据库 (2)
- ide (1)
- 大数据 (0)
- uml (1)
- spring-boot (1)
- mybatis (3)
- oracle (2)
- jetty (1)
- 学习 (0)
- 系统调优 (1)
- tomcat (2)
- kettle (1)
- 学习资源 (1)
- 架构 (2)
- database (4)
- idea (1)
- consul (1)
- hadoop (2)
- nginx (3)
- 认证 (1)
- 加密 (1)
- connection pool (1)
- loadrunner (1)
- tps (1)
- 翻墙工具 (1)
- redis (2)
- redis jedis shardjedis (1)
- spring boot (1)
- 认证授权 (1)
- ssh (1)
- svn (2)
- 多线程 (1)
最新评论
-
abcdeudi:
不错
接口和抽象类什么时候使用才合适? -
羽翼的心动:
POI中对Word处理,读取不到书签。如果要处理书签的话,就只 ...
POI根据模板(excel表头)导出excel -
pdf1192012:
高质量文章
接口和抽象类什么时候使用才合适? -
沐忆潼:
...
POI根据模板(excel表头)导出excel -
422937561:
高质量文章
接口和抽象类什么时候使用才合适?
在SQL中实现数组(转)T-SQL象数组一样处理字符串、分割字符串 在日常的编程过程中,数组是要经常使用到的。在利用SQL对数据库进行操作时,有时就想在SQL使用数组,比如将1,2,3,4,5拆分成数组。可惜的是在T-SQL中不支持数组。不过还是有变通的办法。我们可以自己编写两函数Get_StrArrayLength(取得字符串的长度-元素的个数)和Get_StrArrayStrOfIndex(按指定符号分割字符串,返回分割后指定索引的第几个元素)。有了这两个函数,我们就可以非常方便的在T-SQL中处理形如1,2,3,4,5这样的字符串了。
T-SQL对字符串的处理能力比较弱,比如我要循环遍历象1,2,3,4,5这样的字符串,如果用数组的话,遍历很简单,但是T-SQL不支持数组,所以处理下来比较麻烦。下边的函数,实现了象数组一样去处理字符串。
一、按指定符号分割字符串,返回分割后的元素个数,方法很简单,就是看字符串中存在多少个分隔符号,然后再加一,就是要求的结果。
CREATE function Get_StrArrayLength
(
@str varchar(1024), --要分割的字符串
@split varchar(10) --分隔符号
)
returns int
as
begin
declare @location int
declare @start int
declare @length int
set @str=ltrim(rtrim(@str))
set @location=charindex(@split,@str)
set @length=1
while @location<>0
begin
set @start=@location+1
set @location=charindex(@split,@str,@start)
set @length=@length+1
end
return @length
end
调用示例:select dbo.Get_StrArrayLength('78,1,2,3',',')
返回值:4
二、按指定符号分割字符串,返回分割后指定索引的第几个元素,象数组一样方便
CREATE function Get_StrArrayStrOfIndex
(
@str varchar(1024), --要分割的字符串
@split varchar(10), --分隔符号
@index int --取第几个元素
)
returns varchar(1024)
as
begin
declare @location int
declare @start int
declare @next int
declare @seed int
set @str=ltrim(rtrim(@str))
set @start=1
set @next=1
set @seed=len(@split)
set @location=charindex(@split,@str)
while @location<>0 and @index>@next
begin
set @start=@location+@seed
set @location=charindex(@split,@str,@start)
set @next=@next+1
end
if @location =0 select @location =len(@str)+1
--这儿存在两种情况:1、字符串不存在分隔符号 2、字符串中存在分隔符号,跳出while循环后,@location为0,那默认为字符串后边有一个分隔符号。
return substring(@str,@start,@location-@start)
end
调用示例:select dbo.Get_StrArrayStrOfIndex('8,9,4',',',2)
返回值:9
三、结合上边两个函数,象数组一样遍历字符串中的元素
declare @str varchar(50)
set @str='1,2,3,4,5'
declare @next int
set @next=1
while @next<=dbo.Get_StrArrayLength(@str,',')
begin
print dbo.Get_StrArrayStrOfIndex(@str,',',@next)
set @next=@next+1
end
调用结果:
1
2
3
4
5
摘自:http://hi.baidu.com/clxiu/item/d4c3853fd8ff6d84b611db20
T-SQL对字符串的处理能力比较弱,比如我要循环遍历象1,2,3,4,5这样的字符串,如果用数组的话,遍历很简单,但是T-SQL不支持数组,所以处理下来比较麻烦。下边的函数,实现了象数组一样去处理字符串。
一、按指定符号分割字符串,返回分割后的元素个数,方法很简单,就是看字符串中存在多少个分隔符号,然后再加一,就是要求的结果。
CREATE function Get_StrArrayLength
(
@str varchar(1024), --要分割的字符串
@split varchar(10) --分隔符号
)
returns int
as
begin
declare @location int
declare @start int
declare @length int
set @str=ltrim(rtrim(@str))
set @location=charindex(@split,@str)
set @length=1
while @location<>0
begin
set @start=@location+1
set @location=charindex(@split,@str,@start)
set @length=@length+1
end
return @length
end
调用示例:select dbo.Get_StrArrayLength('78,1,2,3',',')
返回值:4
二、按指定符号分割字符串,返回分割后指定索引的第几个元素,象数组一样方便
CREATE function Get_StrArrayStrOfIndex
(
@str varchar(1024), --要分割的字符串
@split varchar(10), --分隔符号
@index int --取第几个元素
)
returns varchar(1024)
as
begin
declare @location int
declare @start int
declare @next int
declare @seed int
set @str=ltrim(rtrim(@str))
set @start=1
set @next=1
set @seed=len(@split)
set @location=charindex(@split,@str)
while @location<>0 and @index>@next
begin
set @start=@location+@seed
set @location=charindex(@split,@str,@start)
set @next=@next+1
end
if @location =0 select @location =len(@str)+1
--这儿存在两种情况:1、字符串不存在分隔符号 2、字符串中存在分隔符号,跳出while循环后,@location为0,那默认为字符串后边有一个分隔符号。
return substring(@str,@start,@location-@start)
end
调用示例:select dbo.Get_StrArrayStrOfIndex('8,9,4',',',2)
返回值:9
三、结合上边两个函数,象数组一样遍历字符串中的元素
declare @str varchar(50)
set @str='1,2,3,4,5'
declare @next int
set @next=1
while @next<=dbo.Get_StrArrayLength(@str,',')
begin
print dbo.Get_StrArrayStrOfIndex(@str,',',@next)
set @next=@next+1
end
调用结果:
1
2
3
4
5
摘自:http://hi.baidu.com/clxiu/item/d4c3853fd8ff6d84b611db20
发表评论
-
sql批量插入
2017-04-01 17:37 735http://blog.csdn.net/orion61/ar ... -
sum if 或 sum case 加速查询
2016-12-05 08:56 526http://www.jianshu.com/p/c19c99 ... -
sql join 时 on和where 区别
2016-12-05 00:15 397http://blog.csdn.net/muxiaoshan ... -
sql 执行顺序
2016-12-05 00:17 282http://blog.csdn.net/u013600225 ... -
键、索引、约束及其区别 主键约束和唯一性约束的区别
2016-03-28 17:14 782http://blog.csdn.net/dlodj/arti ... -
join......on 后面的and 和where
2014-07-03 11:25 10617运行平台:Mysql 目的:比较join......on 后面 ... -
sql 获取字符串长度SQL字符串操作汇总
2014-04-09 00:57 2668http://blog.csdn.net/a4562834/a ... -
sql server2005服务无法启动
2013-12-18 23:44 615http://blog.sina.com.cn/s/blog_ ... -
分时间段统计(case + group by)
2013-07-20 21:53 1386http://www.cnblogs.com/qiantuw ... -
获取日期的年份,月份,日期
2013-07-20 20:08 893select DATENAME(YEAR,GETDATE()) ... -
sql case when
2013-04-09 14:20 769SELECT *, processStrin ... -
sql 语句顺序 where,group by,order by
2013-02-22 18:06 1026SELECT accessoryItem,accessoryT ... -
statement、prepareStatement、callableStatement的使用
2013-01-18 12:54 7601.PreparedStatement: 带?参数的使用p ... -
sql 多行并一行
2013-01-14 15:26 8101) select _size from clothes wh ... -
sql group by语句
2012-08-23 16:20 761以下写法错误 select orderNo,styleNo,c ... -
sql select时增加常量列
2012-08-23 16:08 12659string sql="select a,b,'常量 ... -
动态sql的传参方法和获取返回值
2012-08-23 15:14 5871一)动态sql的传参方法 /* 实现动态sql传参的方法一 ... -
注意ms sql的substring
2012-08-22 17:21 858MS的substring(列名,n,m) n:起始位置 m: ... -
union all 效率问题
2012-08-21 16:18 810如果union all太多的话,建议使用存储过程,建立一张临时 ... -
外键约束是否必要
2012-08-21 16:15 810外键约束是否必要 http://www.iteye.com/ ...
相关推荐
"在SQL Server中实现数据的数组式读取" 标题:“在SQL Server中实现数据的数组式读取” 描述:在SQL Server中实现数据的数组式读取.pdf 标签:“SQL 数据库 数据处理 参考文献 专业指导” 在SQL Server中实现...
在SQL Server中,存储过程是预编译的SQL语句集合,它们允许开发人员封装复杂的数据库操作,并且可以接受输入参数来实现灵活的数据处理。在某些情况下,我们需要一次性处理多个值,而不是单个参数,这就是参数数组...
这些方法可以有效地实现数组的基本操作,如初始化、赋值和取值,并能够将数据关系映射到字符串的存储结构上。对于PL/SQL来说,尽管它没有直接提供二维数组的支持,但可以通过集合类型来模拟一维数组的操作。不过,...
2. **创建SQL语句**:在SQL查询中,你可以使用`IN`关键字配合`(@p1, @p2, ..., @pn)`来处理数组中的元素。但由于参数化的限制,你不能直接将数组传入SQL,而是需要构造一个动态的SQL语句。这里我们可以使用字符串...
'仿制简单的SQL查询语句,用于对二维数组的查询 '参照SQL语句:Select * From array [Where conditions] [Distinct fields] [ResultWithTitle] ' '实现功能: ' 依条件设置查询数组,返回包含查询字段(或全部字段)...
在SQL Server中,我们不能直接定义一个数组类型的参数。然而,可以通过创建表类型变量或者使用XML类型来模拟数组的行为。表类型变量允许我们将多个值作为单个参数传递,而XML类型则可以用来序列化一组值。 2. **...
例如,找出数组中的最大值: ```csharp public static int FindMax(int[] values) { int max = int.MinValue; foreach (int value in values) { if (value > max) { max = value; } } return max; } ``` 3....
sql通用函数, 解析字符串为数组,根据索引,获得数组的值
通过动态执行CREATE TABLE命令和UPDATE命令,实现了数据的数组式存储在SQL Server中。这有利于在循环语句中实现数据的规律性、大批量存取。 关键技术要点: 1. 动态执行CREATE TABLE命令和UPDATE命令 2. 使用...
本文详细介绍了Java中实现数组反转的几种方法,并探讨了数据库去重的多种技术。通过合理选择和实现这些技术,可以有效地提升程序的性能和数据处理的准确性。无论是在内存中处理数组还是在数据库中处理数据集,去重都...
标题中的“spring+dwr+Extjs+sql2008的数组传递grid”是指一个集成应用,使用了Spring框架、Direct Web Remoting (DWR)技术、ExtJS前端框架以及SQL Server 2008数据库,实现了从后端服务器向前端Grid组件传递数据的...
这个类库可以实现 1.转换一个String字符串为byte数组 2.将字节数组转化为String类型的数据 3.转换一个int为byte数组 4.从字节数组中指定的位置读取一个Integer...6.从字节数组中指定的位置读取一个Short类型的数据
在SQL语言中,可以使用Update表名Set字段名=case字段名when值1then值2else值三endFrom表名Where条件语句来实现条件语句的写法。 四、取余函数Mod() 在PB脚本中,可以使用Mod(要取余数的值,取余值)函数来实现取余数...
前台JS数组需要从后台C#数组中获取数据,而后台C#数组则需要从数据库中获取数据。下面我们将详细介绍如何实现这个交互。 定义CS数组 在ASP.NET中,后台程序中需要定义一个公共的数组来存放数据。在这里,我们定义...
Python在与MySQL数据库交互时,通常会使用各种库来实现高效、安全的连接。本篇文章将详细介绍如何使用Python连接MySQL数据库,并重点讲解如何防止SQL注入、利用数组编写SQL以及处理高并发场景,确保数据安全。 首先...
本文将介绍一个在PHP中使用数组生成SQL语句的方法,以及对这个方法的一些优化和注意事项。 首先,来看给定的`array_to_sql`函数,它的主要功能是根据输入的数组、操作类型(insert或update)和需要排除的字段,自动...
在"易语言取数组中重复文本下标源码"中,实现的算法应该与此类似,但它会具体到易语言的语法。源码可能包含了循环、条件判断以及哈希表或列表的操作,用以存储和比较元素的索引。源码的详细实现可能包括了自定义函数...
### SQL Server 转 PostgreSQL 经验总结及 PostgreSQL 特性 #### 一、SQL Server 到 PostgreSQL 的数据类型映射 在进行 SQL Server 数据库迁移至 PostgreSQL 的过程中,一个重要的步骤是确保数据类型的正确映射。...
4. **数组转二进制**:在实际操作中,我们需要一个函数将数组转换为二进制格式。这通常涉及到将每个元素转换为字节流,然后组合成一个大的字节数组。这个过程可能会根据不同的编程环境有所不同,但基本思路是遍历...