精华内容
下载资源
问答
  • sql语句截取字符串
    2021-07-12 18:28:37

    从字符串的第6个字符开始,只取2个字符

    SELECT SUBSTRING('SUBSTRING', 6, 2)
    
    sql = " SELECT `__source__`  from database.`tablename` where SUBSTRING(cast(base64 as CHAR),6,2)='AB' limit 1000,100"
    
    
    更多相关内容
  • select @str as ‘字符串’select len(@str) as ‘字符长度’select charindex(‘,’,@str,1) as ‘第一个逗号的索引值’select LEFT(@str,charindex(‘,’,@str,1)-1) as ‘第一个值’select SUBSTRING(@str,...
  • SQL截取字符串

    2021-11-05 21:58:27
    SQL使用charindex和substring截取字符串 SUBSTRING 返回字符、binary、text 或 image表达式的一部分。有关可与该函数一起使用的有效Microsoft SQL Server 数据类型的更多信息,请参见数据类型。 语法 SUBSTRING(exp

    GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
    https://cnsendnet.taobao.com
    来自森大科技官方博客
    http://www.cnsendblog.com/index.php/?p=2022

    SQL使用charindex和substring截取字符串
    SUBSTRING
    返回字符、binary、text 或 image表达式的一部分。有关可与该函数一起使用的有效Microsoft SQL Server 数据类型的更多信息,请参见数据类型。

    语法
    SUBSTRING(expression,starting_position int,length int)

    参数
    expression
    是要从哪个字符串中截取就写那个字符串、二进制字符串、text、image、列或包含列的表达式。不要使用包含聚合函数的表达式。

    starting_position
    是一个整数,指定子串的开始位置。
    注意:开始位置是从1开始,如abcdefg中c是第3个。

    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官方手册中查询(字符串处理函数库)
    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

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

    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();
    }
    PS:
    最近项目中用到比较少见的SQL语句,分享一下:
    查询祖先节点
    select * from 目录表_数据库 where ID<>-1 and datatype<>1 and datatype<>2 connect by prior FATHERID=ID start with ID=28 order by 目录级别,ID
    查询子孙节点:
    select * from 目录表_数据库 where ID<>-1 and datatype<>1 and datatype<>2 connect by prior ID=FATHERID start with ID=28 order by 目录级别,ID

    SQL charindex的用法
    select * from table_a where charindex(‘a’,id)>0 or charindex(‘b’,id)>0
    table_a 表中 id字段中含有"a"或者"b"的记录.


    CHARINDEX
    返回字符串中指定表达式的起始位置。
    语法
    CHARINDEX ( expression1 , expression2 [ , start_location ] )
    参数
    expression1
    一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。
    expression2
    一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。
    start_location
    在 expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从 expression2 的起始位置开始搜索。
    返回类型
    int

    注释
    如果 expression1 或 expression2 之一属于 Unicode 数据类型(nvarchar 或 nchar)而另一个不属于,则将另一个转换为 Unicode 数据类型。
    如果 expression1 或 expression2 之一为 NULL 值,则当数据库兼容级别为 70 或更大时,CHARINDEX 返回 NULL 值。当数据库兼容级别为 65 或更小时,CHARINDEX 仅在 expression1 和 expression2 都为 NULL 时返回 NULL 值。
    如果在 expression2 内没有找到 expression1,则 CHARINDEX 返回 0。

    示例
    第一个代码示例返回序列"wonderful"在 titles 表的 notes 列中开始的位置。第二个示例使用可选的 start_location 参数从 notes 列的第五个字符开始寻找"wonderful"。第三个示例显示了当 expression2 内找不到 expression1 时的结果集。

    USE pubs
    GO
    SELECT CHARINDEX(’wonderful’, notes)
    FROM titles
    WHERE title_id = ’TC3218’
    GO

    – Use the optional start_location parameter to start searching
    – for wonderful starting with the fifth character in the notes
    – column.
    USE pubs
    GO
    SELECT CHARINDEX(’wonderful’, notes, 5)
    FROM titles
    WHERE title_id = ’TC3218’
    GO

    下面是第一个查询和第二个查询的结果集:

    46
    (1 row(s) affected)
    USE pubs
    GO
    SELECT CHARINDEX(’wondrous’, notes)
    FROM titles
    WHERE title_id=’TC3218’
    GO

    下面是结果集。


    0

    GPS平台、网站建设、软件开发、系统运维,找森大网络科技!
    https://cnsendnet.taobao.com
    来自森大科技官方博客
    http://www.cnsendblog.com/index.php/?p=2022

    展开全文
  • SQL SERVER字符串截取SQL SERVER根据指定字符截取

    字符串截取
    字符串截取函数:substring(str,startlen,endlen)
    需要截取的字符:str
    开始长度:startlen --从1开始
    结束长度:endlen -从1开始
    用法:select substring(“abcdefg”,1,2)
    输出:bc

    为啥这么麻烦:因为sql server没有substring_index函数,只能用substring函数
    根据指定字符截取
    需要用到的函数:
    substring–介绍上面已经写了
    LTRIM --去除左边空格
    RTRIM–去除右边空格
    len–获取字符长度,从1开始

    charindex(target,str)–返回指定字符的下标,从1开始
    目标字符:target–可以指定任意东西字符
    字符:str–目标字符所在的字符串
    用法:charindex(”@“,“1234@abcd”)
    输出:4

    Tips:这里演示的字符中没包含换行符和占位符,请自行测试

    实战sql也可以直接拿来用;
    需要改动的地方:表名,目标字符串:b.selectname,目标字符:"/"

    
    SELECT
    	LTRIM( RTRIM( b.selectname ) ) AS "字符串",
    	charindex( '/', LTRIM( RTRIM( b.selectname ) ) ) + 1 AS "开始位置",
    	len( b.selectname ) AS "结束位置",
    	SUBSTRING (
    		LTRIM( RTRIM( b.selectname ) ),
    		charindex( '/', LTRIM( RTRIM( b.selectname ) ) ) + 1,
    		len( b.selectname ) 
    	) AS "结果" 
    FROM
    	workflow_billfield a
    	LEFT JOIN workflow_selectitem b ON a.id= b.fieldid 
    WHERE
    	billid = - 13 
    	AND fieldname = 'fylx1';
    

    sql执行结果:
    在这里插入图片描述

    文章到此结束,如有雷同纯属意外;
    欢迎大家踊跃发言,积极补充。

    展开全文
  • 想要在MS SQL中根据给定的分隔符把这个字符串分解成各个元素,本文将详细介绍此功能的实现,需要了解的朋友可以参考下
  • 假设数据库中,某一列数据像这样,每个数据都有同一个字符“-”,这时如果我们需要获取这个字符的前面的字符串或后面的字符串,应该用什么SQL语句呢? SUBSTRING ( expression, start, length ) --SUBSTRING('列名...

    假设数据库中,某一列数据像这样,每个数据都有同一个字符“-”,这时如果我们需要获取这个字符的前面的字符串或后面的字符串,应该用什么SQL语句呢?

    SUBSTRING ( expression, start, length )               --SUBSTRING('列名',起始位数,要取的字符串长度)

    1.获取“-”前面的字符串:

    SUBSTRING(FBILLNO, 1 ,  CHARINDEX('-',FBILLNO)-1)  from a
    
    列名   ,从第一位取值 ,要取的字符串长度是“-”字符在字段中的位置减1

    2.获取“-”后面的字符串:

    SUBSTRING(FBILLNO ,CHARINDEX('-',FBILLNO)+1 ,len(FBILLNO)-charindex('-',FBILLNO))
    
    列名,从“-”字符后一位开始 ,要取的字符串长度是字段总长度减去“-”字符所在位置

    展开全文
  • ------- the quick lazy fox (4 filas) Since 8.2 does not have UNNEST, you can write it in PostgreSQL like this: create or replace function unnest(anyarray) returns setof anyelement language sql as $$ ...
  • 1、字符串截取substrpresto: substr(string, start, length) → varchar 如: select substr('1599319787151',1,10) 功效:返回字符串A从下标start位置开始,长度为len的字符串 substr(string, start) → ...
  • aaa,bbb,ccc n=2时 截取结果 bbb 很明白了吧 哈
  • 字符串截取在php开发中是比较常用的;而且对于截取的需求也有很多种;就比如说对url链接的操作:http://baijunyao.com/article/12有时我们想截取最后一个斜杠'/'后面的数字;有时我们又需要截取第一个斜杠'/'前面的...
  • 1,图示 1.1 目的:截取特殊字符附近的字符串 1.2 语法: select id,substring(str,charindex(',',str)+1,len(str)-charindex(',',str)) from test; 1.3 应用: SELECT DISTINCT name , CHARINDEX( '(', name )...
  • /****** Sql Server中截取字符串的常用方法 ******/   TESTCODESTRING='01378a77517a41e982b14cc97b1f8794' --1、LEFT()方法--- --函数说明--- --1)语法:LEFT(character,integer) --2)介绍:参...
  • 已知: 字段string=F:\photo\Winter Leaves.jpg ...--截取字符串第一个\左边的字符串 select left(string,charindex('\',string)-1) from cs --输出结果:F: --+++++++++++++++++++++++++++++++++++++++++.
  • sql截取字符串函数 SQL Server 2017 has been in the talk for its many features that simplify a developer’s life. With the previous versions, developers had to write T-SQL, or user-defined functions...
  • sql 截取字符串第一次出现字符之前的数据 截取sql 第一次出现字符之前的数据 (select left( a.ChangeProductName,charindex(',', ChangeProductName)-1)) as ChangeProductNam...
  • select id,substring(Memo,charindex('数量',Memo)+3,len(Memo)-charindex('数量',Memo)) from trace where Memo like '%退货%' 转载于:https://www.cnblogs.com/smartsensor/p/10754589.html
  • SQL 截取字段空格之前的数据

    千次阅读 2017-06-30 22:55:00
    MYSQL SELECT left(city,LOCATE(' ',city)),count(*) FROM `lj_customer` WHERE 1=1 group by left(city,LOCATE(' ',city)) ...SQL select a,left(a,charindex( ' ',a)) FROM test SELECTleft(city,LO...
  • CREATE function Get_...@str varchar(1024), --要分割的字符串 @split varchar(10), --分隔符号 @index int --取第几个元素 ) returns varchar(1024) as begin declare @numlocation int decl
  • 截取字符串 substr( string, start_position, [ length ] ) string 为要截取字符串 start_position为开始截取的位数(位数从1开始,如果是负数,表示从右边开始截取) length表示截取的长度(如果不写表示去后面...
  • Oracle 截取字符串

    2021-12-30 15:28:10
    substr 函数:截取字符串 语法:SUBSTR(string,start, [length]) string:表示源字符串,即要截取字符串。 start:开始位置,从1开始查找。如果start是负数,则从string字符串末尾开始算起。 length:可选项,...
  • sql语句,能够截取指定字符串后面的一个字符串吗? 如下图: dasf.sdf dergre.adsf.lfs ljjdf.ljfjl 想要得到第一个.后面的字符串内容 sdf adsf.lfs ljfjl SQL语句写法如下,str为字段名称: ...
  • 但是对于 特殊字符串的处理,比如:字符串: '96525,11425,6632,11785,99654',如果想获取第三个与第四个分割符号之间的数字, 那么SQL 内置函数无法直接做到。这时就需要自定义函数。下面自定义三个函数,用于处理...
  • oracle截取字段中的部分字符串

    千次阅读 2021-01-17 18:27:22
    使用Oracle中Instr()和substr()函数:在Oracle中可以使用instr函数对某个字符串进行判断,判断其是否含有指定的字符。其语法为:instr(sourceString,destString,start,appearPosition). instr('源字符串' , '目标...
  • java 正则匹配空格字符串 正则表达式截取字符串需求:从一堆sql中取出某些特定字符串:比如配置的sql语句为:"company_code = @cc and project_id = @pid ; update t set a = @aa,b=@bb,c=@cd,ttt=@ttt;update t2 ...
  • 展开全部--这个查询需要注意的是qwer后的需要查询的字符串必须是一个空e5a48de588b662616964757a686964616f31333365653331格,不能有的是一个空格有的是两个。也就是格式要固定。--定义参数create table #a (string ...
  • ', -4, 3) expr_val FROM dual union all SELECT '从截取开始位置超过字符串长度' func, 'SUBSTR(''Hello SQL!'', 20, 3)' expr, SUBSTR('Hello SQL!', 20, 3) expr_val FROM dual 结果如下: substr例子 注:上图中...
  • 参数1:要截取字符串,参数2:截取字符个数 LEFT ( character_expression , integer_expression ) 从右截取 RIGHT 参数1:要截取字符串,参数2:截取字符个数 RIGHT ( character_expression , integer_...
  • 利用PARSENAME函数分割字符串 DECLARE @str nvarchar(50)=N'NBA||湖人||老詹||MVP'; SELECT PARSENAME(REPLACE(@str,'||','.'),4), PARSENAME(REPLACE(@str,'||','.'),3), PARSENAME(REPLACE(@str,'||','.'...
  • SQLServer字符串函数

    2021-07-27 16:06:19
    参数character_expression:由字符数据组成的字母数字...1.SubString():截取指定的字符串 --substring(character_expression,integer_experssion,integer_expression) --character_expression: 表达式(varchar、nva
  • 提示:早,blur 事件仅 ... 两种方法 更改 EBS R12界面LOGO以及内容 from:metalink more: Note 174219.1 - How To Change The Logo In The Oracle Application Menu Note 84975 ... Epic Games工程师分享:如何在...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,976
精华内容 9,590
关键字:

sql截取空格前的字符串