代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
MSSQL
】
获取指定索引的值的函数
作者:
maco_wang
/ 发布于
2012/2/8
/
650
<div> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;">go</span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="color: green; font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;">--</span><span style="color: green; font-family: 宋体; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes; mso-ascii-font-family: "Courier New"; mso-hansi-font-family: "Courier New"; mso-bidi-font-family: "Courier New";">创建函数</span><span lang="EN-US" style="color: green; font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;">(</span><span style="color: green; font-family: 宋体; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes; mso-ascii-font-family: "Courier New"; mso-hansi-font-family: "Courier New"; mso-bidi-font-family: "Courier New";">作者:</span><span lang="EN-US" style="color: green; font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;">csdn</span><span style="color: green; font-family: 宋体; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes; mso-ascii-font-family: "Courier New"; mso-hansi-font-family: "Courier New"; mso-bidi-font-family: "Courier New";">邹建</span><span lang="EN-US" style="color: green; font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;">)</span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;">create</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;"> <span style="color: blue;">function</span> getstrofindex <span style="color: gray;">(</span>@str <span style="color: blue;">varchar</span><span style="color: gray;">(</span>8000<span style="color: gray;">),</span>@index <span style="color: blue;">int</span> <span style="color: gray;">=</span>0<span style="color: gray;">)</span> </span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;">returns</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;"> <span style="color: blue;">varchar</span><span style="color: gray;">(</span>8000<span style="color: gray;">)</span> </span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;">as</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;"> </span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;">begin</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;"> </span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">declare</span> @str_return <span style="color: blue;">varchar</span><span style="color: gray;">(</span>8000<span style="color: gray;">)</span> </span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">declare</span> @start <span style="color: blue;">int</span> </span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">declare</span> @next <span style="color: blue;">int</span> </span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">declare</span> @location <span style="color: blue;">int</span> </span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">select</span> @start <span style="color: gray;">=</span>1 </span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">select</span> @next <span style="color: gray;">=</span>1 <span style="color: green;">--</span></span><span style="color: green; font-family: 宋体; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes; mso-ascii-font-family: "Courier New"; mso-hansi-font-family: "Courier New"; mso-bidi-font-family: "Courier New";">如果习惯从开始则</span><span lang="EN-US" style="color: green; font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;">select @next =0 </span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">select</span> @location <span style="color: gray;">=</span> <span style="color: fuchsia;">charindex</span><span style="color: gray;">(</span><span style="color: red;">','</span><span style="color: gray;">,</span>@str<span style="color: gray;">,</span>@start<span style="color: gray;">)</span> </span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">while</span> <span style="color: gray;">(</span>@location <span style="color: gray;"><></span>0 <span style="color: gray;">and</span> @index <span style="color: gray;">></span> @next <span style="color: gray;">)</span> </span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">begin</span> </span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">select</span> @start <span style="color: gray;">=</span> @location <span style="color: gray;">+</span>1 </span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">select</span> @location <span style="color: gray;">=</span> <span style="color: fuchsia;">charindex</span><span style="color: gray;">(</span><span style="color: red;">','</span><span style="color: gray;">,</span>@str<span style="color: gray;">,</span>@start<span style="color: gray;">)</span> </span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">select</span> @next <span style="color: gray;">=</span>@next <span style="color: gray;">+</span>1 </span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">end</span> </span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">if</span> @location <span style="color: gray;">=</span>0 <span style="color: blue;">select</span> @location <span style="color: gray;">=</span><span style="color: fuchsia;">len</span><span style="color: gray;">(</span>@str<span style="color: gray;">)+</span>1 <span style="color: green;">--</span></span><span style="color: green; font-family: 宋体; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes; mso-ascii-font-family: "Courier New"; mso-hansi-font-family: "Courier New"; mso-bidi-font-family: "Courier New";">如果是因为没有逗号退出,则认为逗号在字符串后</span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">select</span> @str_return <span style="color: gray;">=</span> <span style="color: fuchsia;">substring</span><span style="color: gray;">(</span>@str<span style="color: gray;">,</span>@start<span style="color: gray;">,</span>@location <span style="color: gray;">-</span>@start<span style="color: gray;">)</span> <span style="color: green;">--@start</span></span><span style="color: green; font-family: 宋体; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes; mso-ascii-font-family: "Courier New"; mso-hansi-font-family: "Courier New"; mso-bidi-font-family: "Courier New";">肯定是逗号之后的位置或者就是初始值</span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">if</span> <span style="color: gray;">(</span>@index <span style="color: gray;"><></span> @next <span style="color: gray;">)</span> <span style="color: blue;">select</span> @str_return <span style="color: gray;">=</span> <span style="color: red;">''</span> <span style="color: green;">--</span></span><span style="color: green; font-family: 宋体; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes; mso-ascii-font-family: "Courier New"; mso-hansi-font-family: "Courier New"; mso-bidi-font-family: "Courier New";">如果二者不相等,则是因为逗号太少,或者</span><span lang="EN-US" style="color: green; font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;">@index</span><span style="color: green; font-family: 宋体; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes; mso-ascii-font-family: "Courier New"; mso-hansi-font-family: "Courier New"; mso-bidi-font-family: "Courier New";">小于</span><span lang="EN-US" style="color: green; font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;">@next</span><span style="color: green; font-family: 宋体; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes; mso-ascii-font-family: "Courier New"; mso-hansi-font-family: "Courier New"; mso-bidi-font-family: "Courier New";">的初始值。</span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;"><span style="mso-spacerun: yes;"> </span><span style="color: blue;">return</span> @str_return </span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;">end</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;"> </span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;"> </span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="color: green; font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;">--</span><span style="color: green; font-family: 宋体; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes; mso-ascii-font-family: "Courier New"; mso-hansi-font-family: "Courier New"; mso-bidi-font-family: "Courier New";">测试示例</span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="color: blue; font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;">SELECT</span><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;"> [dbo]<span style="color: gray;">.</span>[getstrofindex]<span style="color: gray;">(</span><span style="color: red;">'1,2,3,4,a,b,c,d'</span><span style="color: gray;">,</span>4<span style="color: gray;">)</span> </span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;"> </span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="color: green; font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;">--</span><span style="color: green; font-family: 宋体; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes; mso-ascii-font-family: "Courier New"; mso-hansi-font-family: "Courier New"; mso-bidi-font-family: "Courier New";">运行结果</span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="color: green; font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;">/*</span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="color: green; font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;">4</span> <p align="left" class="MsoNormal" style="margin: 0cm 0cm 0pt; text-align: left; mso-layout-grid-align: none;"><span lang="EN-US" style="color: green; font-family: "Courier New"; font-size: 10pt; mso-font-kerning: 0pt; mso-no-proof: yes;">*/</span> </div>
试试其它关键字
指定索引的值的函数
同语言下
.
SQL查询 多列合并成一行用逗号隔开
.
查看存储过程修改时间,最近执行时间
.
设置手动批量删除数据库相关进程
.
获取某个表中特定字段的所有字符串形式
.
SQL 如何去除重复的字符串
.
怎么去掉一个字段中的重复数据
.
String 去除空格 回车 换行 水平制表符
.
SQL查询和替换含有回车,空格,TAB
.
SQL SERVER 查询每日新增用户数量、次留数量
.
判断两个字符串是否存在相同的内容
可能有用的
.
C#实现的html内容截取
.
List 切割成几份 工具类
.
SQL查询 多列合并成一行用逗号隔开
.
一行一行读取txt的内容
.
C#动态修改文件夹名称(FSO实现,不移动文件)
.
c# 移动文件或文件夹
.
c#图片添加水印
.
Java PDF转换成图片并输出给前台展示
.
网站后台修改图片尺寸代码
.
处理大图片在缩略图时的展示
maco_wang
贡献的其它代码
(
36
)
.
求字符串中汉字的个数
.
从第一个汉字开始分割字符串
.
根据年月生成日历函数
.
计算两个日期之间的工作日
.
根据日期返回星座
.
检查给定串是否存在于由区间及点集的结合内
.
将整型数字转换为大写汉字
.
向左填充指定字符串
.
人民币小写金额转大写
.
通过身份证获得户籍
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3