java sql数组_Sql数组类型解决方案
众所周知,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数组类型解决方案相关推荐
- java sql超过32k_db2 clob类型如何能存储大于32k的字符串
#include #include int ascii[256]; // 字符出现次数,一共只有256个ascii码 int main() { int i,r,j; char str[1024]; p ...
- java sql 通配符_sql 通配符 转义符
一.搜索通配符字符的说明 可以搜索通配符字符.有两种方法可指定平常用作通配符的字符: * 使用 ESCAPE 关键字定义转义符.在模式中,当转义符置于通配符之前时,该通配符就解释为普通字符.例如,要搜 ...
- java的Arrays.fill()方法对二维数组赋值boolean类型
java的Arrays.fill()方法对二维数组赋值boolean类型 解决方案 import java.util.Arrays; public class Test { public static ...
- java.sql.Types,数据库字段类型,java数据类型的对应关系
原文地址为: java.sql.Types,数据库字段类型,java数据类型的对应关系 以下转自:http://kummy.itpub.net/post/17165/172850 本文在原文基础上有增 ...
- 关于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 ...
- 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 ...
- java学习笔记2--数据类型、数组
本文地址:http://www.cnblogs.com/archimedes/p/java-study-note2.html,转载请注明源地址. 1.数据类型 Java数据类型有: 原始数据类型(Pr ...
- java数组子类型_[改善Java代码]数组的真实类型必须是泛型类型的子类型
List接口的toArray方法可以把一个结合转化为数组,但是使用不方便,toArray()方法返回的是一个Object数组,所以需要自行转变. toArray(T[] a)虽然返回的是T类型的数组, ...
- java整型转换为数组_基于java中byte数组与int类型的转换(两种方法)
java中byte数组与int类型的转换,在网络编程中这个算法是最基本的算法,我们都知道,在socket传输中,发送.者接收的数据都是 byte数组,但是int类型是4个byte组成的,如何把一个整形 ...
最新文章
- WCF系列(一) -- 完全不使用配置文件构建和使用WCF服务
- 如何完美隐藏Disposable的存储和销毁过程(一)
- 【C 语言】结构体 ( 结构体中嵌套一级指针 | 分配内存时先 为结构体分配内存 然后再为指针分配内存 | 释放内存时先释放 指针成员内存 然后再释放结构头内存 )
- FragmentActivity TopFragment
- redis 源码 ziplist.c 压缩list的实现
- 17 初探Context的使用场景
- 前端学习(3008):vue+element今日头条管理--登录中的loding
- 【转】刨根究底字符编码之四——EASCII及ISO 8859字符编码方案
- html手机网站font-size:16em,px、em、rem
- java定义接口规范_关于java的接口的一些规范
- Failed to maintain projects LRU cache for dir *********
- fscokopen 中执行超时 使用stream_set_timeout设置超时
- vue 监听div滚动事件
- FZU 2020 组合
- scala implicit隐式转化与隐式参数
- Luogu3381【模板】最小费用最大流
- 打印系统开发(56)——打印机驱动程序设计指南
- python简单代码大全-python代码大全
- HTML+CSS静态页面网页设计作业 仿天猫购物商城(7页) 网页设计作业,网页制作作业, 学生网页作业, 网页作业成品, 网页作业模板
- 计算机的DNS地址如何设置,如何设置电脑的DNS地址?
热门文章
- python批量修改word特定位置的内容_利用python批量修改word文件名的方法示例
- java 多态性 接口_Java中的多态性和接口
- Network下方什么请求也没有_HTTP的响应与请求
- 自动检测CSRF漏洞的工具
- php伪静态url运用,再谈 THINKPHP 伪静态url(URL访问模式)的设置
- kpu 处理器_首轮融资即估值过亿,中科驭数用全新专用计算架构让芯片也能“私人订制”...
- 牛客假日团队赛5J	护城河 bzoj 1670: [Usaco2006 Oct]Building the Moat护城河的挖掘 (凸包的周长)...
- “只有DBA才能导入由其他DBA导出的文件”各种解决办法
- 多进程Socket_Server
- 6.C语言迷宫程序界面版