众所周知,Sql里面居然没有数组类型,让大家每次在存储过程或者触发器中处理数组的时候都很麻烦。我也遇到这样的情况,所以就特意写了两个自定函数,以 方便自己今后在Sql中处理数组。入行不久,懂得不多,贴出来大家探讨一下,希望大家帮我完善 谢谢

通过连个自定义函数来处理Sql中的数组

第一步:数组长度的函数

SQL code

Alter Function arrLen(@string varchar(1000),@SpaceMark Varchar(200))

--@String 眼拆分的字符串 @SpaceMark 分割符

Returns int

As

Begin

Declare @i Int

Set @i = (Len(@string) - Len(Replace(@string,@Spacemark,'')))/Len(@SpaceMark)

Return(@i)

End

第二步:按索引值取数组中的数据

SQL code

Alter Function arrList(@String varchar(8000),@SpaceMark Varchar(8000),@arrStation int)

returns varchar(8000)

As

Begin

Declare @newString varchar(8000)

Declare @ReturnString Varchar(8000)

Set @NewString = @String

Declare @i int

Set @i = 0

if(@arrStation>0 And @arrStation<=Dbo.arrLen(@String,@SpaceMark))

Begin

While(@i

Begin

Set @NewString = SubString(@NewString,CharIndex(@SpaceMark,@NewString)+1,Len(@NewString))

Set @i = @i + 1

End

End

If(@arrStation<0)

Begin

Set @ReturnString = '上标越界'

End

Else If(@arrStation

Begin

Set @ReturnString = SubString(@NewString,1,CharIndex(@SpaceMark,@NewString)-1)

End

Else if(@arrStation=dbo.arrLen(@String,@SpaceMark))

Begin

Set @ReturnString = @newString

End

Else

Begin

Set @ReturnString = '下标越界'

End

Return(@ReturnString)

End

测试程序:

Declare @a varchar(1000)

Declare @i int

Set @i = 0

Set @a = 'A,B,C,D,E,F,G,H,I'

While(@i <=Dbo.arrLen(@a,','))

Begin

Print Dbo.arrList(@a,',',@i)

Set @i = @i + 1

ENd

java sql数组_Sql数组类型解决方案相关推荐

  1. java sql超过32k_db2 clob类型如何能存储大于32k的字符串

    #include #include int ascii[256]; // 字符出现次数,一共只有256个ascii码 int main() { int i,r,j; char str[1024]; p ...

  2. java sql 通配符_sql 通配符 转义符

    一.搜索通配符字符的说明 可以搜索通配符字符.有两种方法可指定平常用作通配符的字符: * 使用 ESCAPE 关键字定义转义符.在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符.例如,要搜 ...

  3. java的Arrays.fill()方法对二维数组赋值boolean类型

    java的Arrays.fill()方法对二维数组赋值boolean类型 解决方案 import java.util.Arrays; public class Test { public static ...

  4. java.sql.Types,数据库字段类型,java数据类型的对应关系

    原文地址为: java.sql.Types,数据库字段类型,java数据类型的对应关系 以下转自:http://kummy.itpub.net/post/17165/172850 本文在原文基础上有增 ...

  5. 关于Value ‘0000-00-00 00:00:00‘ can not be represented as java.sql.Timestamp异常问题的解读

    前提 对于必传的字段, 新需求改为非必填的时候,在测试环境出现了 Value '0000-00-00 00:00:00' can not be represented as java.sql.Time ...

  6. nested exception is java.sql.SQLException: HOUR_OF_DAY: 0 -> 1

    Cause: java.sql.SQLException: HOUR_OF_DAY: 0 -> 1 HOUR_OF_DAY: 0 -> 1; nested exception is jav ...

  7. java学习笔记2--数据类型、数组

    本文地址:http://www.cnblogs.com/archimedes/p/java-study-note2.html,转载请注明源地址. 1.数据类型 Java数据类型有: 原始数据类型(Pr ...

  8. java数组子类型_[改善Java代码]数组的真实类型必须是泛型类型的子类型

    List接口的toArray方法可以把一个结合转化为数组,但是使用不方便,toArray()方法返回的是一个Object数组,所以需要自行转变. toArray(T[] a)虽然返回的是T类型的数组, ...

  9. java整型转换为数组_基于java中byte数组与int类型的转换(两种方法)

    java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形 ...

最新文章

  1. WCF系列(一) -- 完全不使用配置文件构建和使用WCF服务
  2. 如何完美隐藏Disposable的存储和销毁过程(一)
  3. 【C 语言】结构体 ( 结构体中嵌套一级指针 | 分配内存时先 为结构体分配内存 然后再为指针分配内存 | 释放内存时先释放 指针成员内存 然后再释放结构头内存 )
  4. FragmentActivity TopFragment
  5. redis 源码 ziplist.c 压缩list的实现
  6. 17 初探Context的使用场景
  7. 前端学习(3008):vue+element今日头条管理--登录中的loding
  8. 【转】刨根究底字符编码之四——EASCII及ISO 8859字符编码方案
  9. html手机网站font-size:16em,px、em、rem
  10. java定义接口规范_关于java的接口的一些规范
  11. Failed to maintain projects LRU cache for dir *********
  12. fscokopen 中执行超时 使用stream_set_timeout设置超时
  13. vue 监听div滚动事件
  14. FZU 2020 组合
  15. scala implicit隐式转化与隐式参数
  16. Luogu3381【模板】最小费用最大流
  17. 打印系统开发(56)——打印机驱动程序设计指南
  18. python简单代码大全-python代码大全
  19. HTML+CSS静态页面网页设计作业 仿天猫购物商城(7页) 网页设计作业,网页制作作业, 学生网页作业, 网页作业成品, 网页作业模板
  20. 计算机的DNS地址如何设置,如何设置电脑的DNS地址?

热门文章

  1. python批量修改word特定位置的内容_利用python批量修改word文件名的方法示例
  2. java 多态性 接口_Java中的多态性和接口
  3. Network下方什么请求也没有_HTTP的响应与请求
  4. 自动检测CSRF漏洞的工具
  5. php伪静态url运用,再谈 THINKPHP 伪静态url(URL访问模式)的设置
  6. kpu 处理器_首轮融资即估值过亿,中科驭数用全新专用计算架构让芯片也能“私人订制”...
  7. 牛客假日团队赛5J 护城河 bzoj 1670: [Usaco2006 Oct]Building the Moat护城河的挖掘 (凸包的周长)...
  8. “只有DBA才能导入由其他DBA导出的文件”各种解决办法
  9. 多进程Socket_Server
  10. 6.C语言迷宫程序界面版