oracle 左取,oracle 取子串(转)

SUBSTRING

返回字符、binary、text      或      image      表达式的一部分。有关可与该函数一起使用的有效

Microsoft®      SQL      Server?      数据类型的更多信息,请参见数据类型。

语法

SUBSTRING      (      expression      ,      start      ,      length      )

参数

expression

是字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。

start

是一个整数,指定子串的开始位置。

length

是一个整数,指定子串的长度(要返回的字符数或字节数)。

substring()

——任意位置取子串

left()

right()

——左右两端取子串

ltrim()

rtrim()

——截断空格,没有trim()。

charindex()

patindex()

——查子串在母串中的位置,没有返回0。区别:patindex支持通配符,charindex不支持。

函数功效:

字符串截取函数,只限单字节字符使用(对于中文的截取时遇上奇数长度是会出现乱码,需另行处理),本函数可截取字符串指定范围内的字符。

应用范围:

标题、内容截取

函数格式:

string substr ( string string, int start [, int length])

参数1:处理字符串

参数2:截取的起始位置(第一个字符是从0开始)

参数3:截取的字符数量

substr()更多介绍可在PHP官方手册中查询(字符串处理函数库)

举例:

substr("ABCDEFG", 0);    //返回:ABCDEFG,截取所有字符

substr("ABCDEFG", 2);    //返回:CDEFG,截取从C开始之后所有字符

substr("ABCDEFG", 0, 3); //返回:ABC,截取从A开始3个字符

substr("ABCDEFG", 0, 100); //返回:ABCDEFG,100虽然超出预处理的字符串最长度,但不会影响返回结果,系统按预处理字符串最大数量返回。

substr("ABCDEFG", 0, -3); //返回:EFG,注意参数-3,为负值时表示从尾部开始算起,字符串排列位置不变

例子:

1.截取已知长度的函数

A.截取从字符串左边开始N个字符

Declare @S1 varchar(100)

Select @S1='http://www.163.com'

Select Left(@S1,4)

------------------------------------

显示结果: http

B.截取从字符串右边开始N个字符(例如取字符www.163.com)

Declare @S1 varchar(100)

Select @S1='http://www.163.com'

Select right(@S1,11)

------------------------------------

显示结果: www.163.com

C.截取字符串中任意位置及长度(例如取字符www)

Declare @S1 varchar(100)

Select @S1='http://www.163.com'

Select SUBSTRING(@S1,8,3)

------------------------------------

显示结果: www.163.com

以上例子皆是已知截取位置及长度,下面介绍未知位置的例子

2.截取未知位置的函数

A.截取指定字符串后的字符串(例如截取http://后面的字符串)

方法一:

Declare @S1 varchar(100)

Select @S1='http://www.163.com'

Select Substring(@S1,CHARINDEX('www',@S1)+1,Len(@S1))

/*此处也可以这样写:Select Substring(@S1,CHARINDEX('//',@S1)+2,Len(@S1))*/

------------------------------------

显示结果: www.163.com

需要注意:CHARINDEX函数搜索字符串时,不区分大小写,因此CHARINDEX('www',@S1)也可以写成CHARINDEX('WWW',@S1)

方法二:(与方法一类似)

Declare @S1 varchar(100)

Select @S1='http://www.163.com'

Select Substring(@S1,PATINDEX('%www%',@S1)+1,Len(@S1))

--此处也可以这样写:Select Substring(@S1,PATINDEX('%//%',@S1)+2,Len(@S1))

------------------------------------

显示结果: www.163.com

函数PATINDEX与CHARINDEX区别在于:前者可以参数一些参数,增加查询的功能

方法三:

Declare @S1 varchar(100)

Select @S1='http://www.163.com'

Select REPLACE(@S1,'http://','')

------------------------------------

显示结果: www.163.com

利用字符替换函数REPLACE,将除需要显示字符串外的字符替换为空

方法四:

Declare @S1 varchar(100)

Select @S1='http://www.163.com'

Select STUFF(@S1,CHARINDEX('http://',@S1),Len('http://'),'')

------------------------------------

显示结果: www.163.com

函数STUFF与REPLACE区别在于:前者可以指定替换范围,而后者则是全部范围内替换

B.截取指定字符后的字符串(例如截取C:\Windows\test.txt中文件名)

与A不同的是,当搜索对象不是一个时,利用上面的方法只能搜索到第一个位置

方法一:

Declare @S1 varchar(100)

Select @S1='C:\Windows\test.txt'

select right(@S1,charindex('\',REVERSE(@S1))-1)

-------------------------------------

显示结果: text.txt

利用函数REVERSE获取需要截取的字符串长度

substr()

例子:

private void DDL_AreaBind()

{

conn = new SqlConnection(ConfigurationManager.ConnectionStrings["strcon"].ConnectionString);

string str = "0000";

cmd = new SqlCommand("select AreaID,Name=ltrim(Name) from Area where    right(AreaID,4) ='" + str + "'", conn);

SqlDataAdapter sda = new SqlDataAdapter(cmd);

sda.Fill(ds, "area");

this.ddl_area.DataSource = ds.Tables["area"].DefaultView;

this.ddl_area.DataTextField = "Name";

this.ddl_area.DataValueField = "AreaID";

this.ddl_area.DataBind();

cmd = new SqlCommand("select * from Area    ", conn);

cmd.CommandType = CommandType.Text;

SqlDataAdapter adapter = new SqlDataAdapter(cmd);

adapter.Fill(ds, "city");

this.ddl_city.DataSource = ds.Tables["city"].DefaultView;

this.ddl_city.DataTextField = "Name";

this.ddl_city.DataValueField = "AreaID";

this.ddl_city.DataBind();

}

protected void ddl_area_SelectedIndexChanged(object sender, EventArgs e)

{

conn = new SqlConnection(ConfigurationManager.ConnectionStrings["strcon"].ConnectionString);

this.ddl_city.Enabled = true;

string str1="0000";

cmd = new SqlCommand("select AreaID,Name from Area where

substring(AreaID,1,2)='" + this.ddl_area.SelectedValue.Substring(0,2)

+ "' AND substring(AreaID,3,4) <> '0000' AND

substring(AreaID,5,2)='00'    ", conn);

cmd.CommandType = CommandType.Text;

SqlDataAdapter adapter = new SqlDataAdapter(cmd);

DataSet ds = new DataSet();

adapter.Fill(ds, "city");

this.ddl_city.DataSource = ds.Tables["city"].DefaultView;

this.ddl_city.DataTextField = "Name";

this.ddl_city.DataValueField = "AreaID";

this.ddl_city.DataBind();

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/504767.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

js 中转换成list集合_js将类数组对象转换成数组对象

javascript与dom有许多瑕疵&#xff0c;如著名的类数组对象Arguments&#xff0c;其他诸如HTMLCollection,NodeList如果它们都是数组的子类&#xff0c;那多省时啊。在标准浏览器中&#xff0c;好像只要对象存在length属性&#xff0c;就能把它转换为数组&#xff0c;但IE就不尽…

oracle插入未调用并行,oracle并行之概念篇

概念 串行执行&#xff1a; 串行执行时候,sql语句由一个server process处理(既只运行在一个cpu上),所以sql语句所能使用的资源受cpu限制,除去异步i/o外server process 处理cpu操作时&#xff0c;不可访问disk。 并行处理&#xff1a; 就是多个slave process一起处理同一个sql语…

三维数据平滑处理_黑白象片的密度信息 卫星数据处理 遥感制图 三维建模 善图科技...

黑白象片的密度信息象片上的黑白变化&#xff0c;可划分为若干等级&#xff0c;此等级称之为灰阶。象片上的灰阶数受洗印技术及目视分辨能力的限制&#xff0c;一般不超过10个灰阶。灰阶较多时&#xff0c;象片上层次分明易于分辨一些细节。但灰阶的增多必导至对比度相对下降&a…

oracle左连接数据会对不上吗,一周工作总结–左连接造成的一些问题-Oracle

一周工作总结–左连接造成的一些问题今天有同事告诉我&#xff0c;有个SQL执行了好久好久执行不出来&#xff0c;我说好就是多久&#xff1f;她说一天左右了。真是令人咋舌的SQL。于是我要来了SQL看了看执行计划&#xff0c;确实让人咋舌。下图中就是执行计划的截图&#xff1a…

android开发 视图联动_新版首页技术设计和实现方案(Android)

动效设计1、两级吸顶CoordinatorLayoutAppBarLayout可以轻松的实现一级吸顶的功能&#xff0c;两级吸顶并不支持。要实现两级吸顶&#xff0c;可以有两种思考&#xff1a;一&#xff0c;在此基础之上再完成一次吸顶&#xff1b;二&#xff0c;直接重写两次吸顶的逻辑&#xff0…

oracle 获取一周七天,Oracle中求出本礼拜第一天和第七天的日期

<1>西方应用是周日是first day&#xff0c;中国人思维则为&#xff0c;周日是最后一天。其实&#xff0c;只需要计算到周一&#xff0c;就可直接获得周日。<2>应用实例--Sundayselect to_date(next_day(to_date(2015-02-09 22:00:00, yyyy-mm-dd hh24:mi:ss) - 7, …

网页设计上机考试原题_全国计算机三级信息安全考试 经验分享

为什么选择信息安全&#xff1f;误打误撞报的名&#xff0c;正好又听说是三级里面最好过的。1&#xff09;时间&#xff1a;九月份的考试&#xff0c;大概六月份报名。我在9月2日开学后&#xff0c;才开始准备的&#xff0c;也就二十几天的时间&#xff0c;而且我白天课不少&am…

oracle to_char 数值,oracle to_char格式数值

C:\Users\XXX>sqlplus / as sysdbaSQL*Plus: Release 10.2.0.5.0 - Production on 星期日 8月 28 15:51:42 2016Copyright (c) 1982, 2010, Oracle. All Rights Reserved.连接到:Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit ProductionWith the Par…

linux环境特性的文件夹,在Linux环境下如何消减可执行文件或者动态库的大小

为了简化描述&#xff0c;下文提到目标时&#xff0c;如无特殊说明&#xff0c;均指代目标可执行文件或者目标动态库。操作步骤如下&#xff1a;选型时&#xff0c;在同等功能时&#xff0c;尽量选择代码量少、占用空间小的开源的软件。控制C特性的使用&#xff0c;如无必要&am…

newifi mini固件_如何在vmware虚拟机中安装OpenWrt系统,含x86固件编译教程

"OpenWrt项目是针对嵌入式设备的Linux操作系统"&#xff0c; 这是官方给出的定义。OpenWrt确实是一个非常好的嵌入式学习系统&#xff0c;目前市面上上千款设备支持运行OpenWrt&#xff0c;如小米路由、newifi、netgear路由、360路由等。各大wifi芯片厂商sdk开始采用…

宝塔linux忘记密码,宝塔忘记登录入口了怎么解决 宝塔面板密码忘记了怎么办

因为性能和安全性上的突出优势&#xff0c;现在用宝塔LINUX面板配置网站环境的站长越来越多&#xff0c;但一些粗心大意的站长经常会遇到这个问题&#xff0c;密码想不起来了&#xff0c;入口链接忘记了&#xff0c;宝塔忘记登录入口了怎么解决 宝塔面板密码忘记了怎么办呢&…

minitab怎么算西格玛水平_六西格玛黑带培训工具因子分析的使用

六西格玛黑带培训工具因子分析的使用-张驰咨询一、该命令用于将数据结构简化为较少的量&#xff0c;因子分析的重点是确定能够解释数据变异大的因子数量。二、对话框内容。1、variables&#xff1a;输入需包含在分析中的变量栏。2、Numberoffactorstoextract&#xff1a;输入需…

ssh linux 配置文件详解,Linux ssh服务常用配置的详细描述及建议配置

SSH服务常用选项描述配置文件&#xff1a; /etc/ssh/sshd_config1、AddressFamliy any&#xff1b;支持那IP协议&#xff1b;比如ipv4,ipv6,&#xff1b;默认 any&#xff1b;2、Port 22 &#xff1a;SSH端口号配置&#xff0c;默认22;3、Protocol 2 &#xff1b; SSH协议的2版…

python set集合内部实现_Python 实现集合Set的示例

Python的集合set原理集合(set)是一个无序的不重复元素序列。可以使用大括号 { } 或者 set() 函数创建集合&#xff0c;注意&#xff1a;创建一个空集合必须用 set() 而不是 { }&#xff0c;因为 { } 是用来创建一个空字典。class Array(object):def __init__(self, size32, ini…

linux curl 编译命令,linux 编译 curl 出错

编译curl make 死活不通过&#xff0c;唉执行参数如下&#xff0c;谢谢各位帮忙看看这一步一切正常rootdebian:~/curl-7.45.0# ./configure --with-sslmake一顿编译之后 ...... 然后出错了../lib/.libs/libcurl.so: undefined reference to SSLv2_client_method../lib/.libs/li…

r语言echarts画箱线图_R语言之数据可视化---交互式图表recharts

环图一.安装方式&#xff1a;if (!require(devtools)) library(devtools)install_github("madlogos/recharts")二.使用方法&#xff1a;1.散点图/气泡图echartr(iris, xSepalWidth, yPetalWidth)多个维度&#xff1a;series控制echartr(iris, xSepalWidth, yPetalWid…

linux内核err实现,Linux中IS_ERR()函数的理解

在Linux源码中的fs部分&#xff0c;经常会碰到这样的函数(位于kernel/include/linux/fs.h)&#xff1a;/** Kernel pointers have redundant information, so we can use a* scheme where we can return either an error code or a dentry* pointer with the same return value…

can例程 ecu_ECU程序及CAN总线实现

内容介绍原文档由会员 usactu 发布ECU程序及CAN总线实现1.3万字 34页包括开题报告和任务书摘 要ECU程序就像汽车的大脑&#xff0c;控制着汽车的动力源泉心脏—发动机&#xff0c;控制着汽车底盘&#xff0c;控制着各个车门&#xff0c;控制着各个仪表盘&#xff0c;控制这整个…

linux 禁用smb服务,Samba 4.11 发布,更好的可扩展性与默认禁用SMB1

Samba 4.11是这个SMB/CIFS/AD实现的最新大功能更新&#xff0c;用于提供与Linux和其他平台更好的Windows互操作性。 Samba 4.11的变化非常多&#xff0c;我们有点惊讶它没有被称为Samba 5.0。也许最令人兴奋的是Samba 4.11具有很大的可扩展性改进&#xff0c;它应该能够扩展到1…

airtest测试网页_Airtest自动化测试超级详细教程

Airtest自动化测试1. 安装AirtestIDEAirtestIDE下载地址。我下载的是AirtestIDE_2019-09-10_py3_Mac10-12.dmg。下载完成之后&#xff0c;直接安装即可。2. 设备连接2.1 部署iOS-Tagentgit clone gitgithub.com:AirtestProject/iOS-Tagent.git把手机连接到电脑上然后 打开Xcode…