相关文章推荐
-- str: 要处理的字符串。 -- delim: 分割符,将str分割成两部分。 -- count: 计数(使用第几个分隔符)。 如果为正数,则从左开始数,返回分割后左边的子串;如果为负数,则从右开始数,返回右边的子串。
-- department_id_string 字段的值为: -1-4-88-220-223-,
-- 例1:
-- count 为正
-- 截取结果:-1-4
-- 用-1-4-88-220-223-中“左数”第三个“-”将字符串截取为两段,返回“左边”的子串。
SELECT SUBSTRING_INDEX(department_id_string,'-', 3)
FROM f_common_bussiness_receipt_source rs 
WHERE rs.receipt_source_id='00025e5d-0bcf-11e9-aa45-0242ac110006'
-- 例2:
-- count 为负
-- 截取结果:220-223-
-- 用-1-4-88-220-223-中“右数”第三个“-”将字符串截取为两段,返回“右边”的子串。
SELECT SUBSTRING_INDEX(department_id_string,'-', -3)
FROM f_common_bussiness_receipt_source rs 
WHERE rs.receipt_source_id='00025e5d-0bcf-11e9-aa45-0242ac110006'
-- 例3:
-- 截取最右的部门
-- 截取结果:223
-- department_id_string 字段的值为 -1-4-88-220-223- 
SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(department_id_string,'-', -2),'-',1) 
FROM f_common_bussiness_receipt_source rs 
WHERE rs.receipt_source_id='008009f9-e498-11e8-9fb1-0242ac110005'
                    -- 截取字符串函数:-- SUBSTRING_INDEX(str, delim, count)-- str: 要处理的字符串。-- delim: 分割符,将str分割成两部分。-- count: 计数(使用第几个分隔符)。 如果为正数,则从左开始数,返回分割后左边的子串;如果为负数,则从右开始数,返回右边的子串。-- department_id_string 字段的值为: -1-4...
string substr ( string string, int start [, int length])
参数1:处理字符串
参数2:截取的起始位置(第一个字符是从0开始)
参数3:截取的字符数量
str:需要拆分字符串;
delim:分隔符,根据此字符拆分字符串;
count:当 count 为正数,取第 n 个分隔符之前的所有字符; 当 count 为负数,取倒数第 n 个分隔符之后的所有字符
– 》str=’ 金融业企业-银行业存款类金融机构-国家开发银行及政策性银行’
–> 1 substring_index(str,’-’,1)
–>得到 金融业企业 由于是取第一个 - 之前的所有字符
				
1.LEFT ( character_expression , integer_expression ) 函数说明:LEFT ( 字段名 , ‘要截取最左边的字符数’ ) 返回从字符串左边开始指定个数的字符 select LEFT(‘SQL_Server_2008’,4 ); 返回结果:SQL_ 2.RIGHT ( character_expression , integer_expressio...
http://my.oschina.net/Kenyon/blog/76819 Postgresql里面内置了很多的实用函数,下面介绍下组合和切割函数  环境:PostgreSQL 9.1.2            CENTOS 5.7 final  一.组合函数  1.concat  a.语法介绍 concat(str "any" [, str "any" [, ...]])
1、sql创建函数 CREATE FUNCTION [dbo].[fn_split](@p_str NVARCHAR(MAX), @p_split NVARCHAR(20)) RETURNS @tab TABLE(tid NVARCHAR(2000)) BEGIN DECLARE @idx INT DECLARE @len INT SELECT @len = LEN(@p_split), @idx = CHARINDEX(@p_split, @p_str, 1) WHILE(@idx >= 1)
结果:09 3、SUBSTRING(name,5,3) 截取name这个字段 从第五个字符开始 只截取之后的3个字符 SELECT SUBSTRING('成都融资事业部',5,3) 结果:事业部 4、SUBSTRING(name,3) 截取name这个字段 从第三个字符开始,之后的所有个字符 SELECT SUBSTRING('成都融资事业部',3) 结果:融资事业部
A.截取从字符串左边开始N个字符 Declare @S1 varchar(100) Select @S1=’http://www.xrss.cn’ 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 v
一、按指定符号分割字符串,返回分割后的元素个数,方法很简单,是看字符串中存在多少个分隔符号,然后再加一,是要求的结果(标量值函数) 1 create function Func_StrArrayLength 3   @str varchar(1024),  –要分割字符串 4   @split varchar(10)  –分隔符号 6 returns int 8 begin 9   declare @location int 10   declare @start int 11   declare @length int 13   s
SQL Server提供了多个函数来截取指定字符串,其中最常用的是SUBSTRING函数SUBSTRING函数可以从一个字符串中截取出一部分子字符串。 其语法如下: SUBSTRING(string, start, length) 其中,string表示要被截取的字符串,start表示要截取的起始位置,length表示要截取的长度。下面是这些参数的具体含义: - string:要截取的字符串,必须是字符型。 - start:要截取的起始位置,可以是整数型、小数型或字符型。如果是小数型,则自动转为整数。 - length:要截取的长度,可以是整数型、小数型或字符型。如果是小数型,则自动转为整数。如果省略该参数,则截取从start位置开始的所有字符。 需要注意的是,SQL Server的SUBSTRING函数和其他数据库或编程语言中的类似函数有所不同,在几个方面有自己独特的特点,例如: 1. 起始位置是从1开始计数的,而不是从0; 2. 如果start的值比string的长度小,那么截取的起始位置就是start,否则返回空值; 3. 如果length的值小于等于0,那么返回空值; 4. 截取的长度不能超过string的长度。 SELECT SUBSTRING('Hello World', 2, 3) --输出结果:ell 说明:截取从第2个字符开始的长度为3的子字符串。 SELECT SUBSTRING('Hello', 2) --输出结果:ello 说明:截取从第2个字符开始的所有字符。 SELECT SUBSTRING('Hello', 7) --输出结果:空值 说明:截取的起始位置超出了字符串的长度,因此返回空值。 通过使用SUBSTRING函数,你可以轻松地截取指定字符串。当然,除了SUBSTRING函数SQL Server还支持其他字符串截取函数,如LEFT、RIGHT、PATINDEX、CHARINDEX等等,根据不同的需求,可以灵活运用这些函数来进行字符串操作。
 
推荐文章