http://my.oschina.net/Kenyon/blog/76819
Postgre
sql里面内置了很多的实用
函数,下面介绍下组合和切割
函数
环境:Postgre
SQL 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等等,根据不同的需求,可以灵活运用这些函数来进行字符串操作。