`
liuqing_2010_07
  • 浏览: 59752 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

数据库中的substring

阅读更多

不同数据库中substring的差异

substring在不同数据库中存在差异,该函数用来求一个字符串的字串。该函数的使用频率很高。下面介绍在不同的数据库中该函数的使用方法与差异。

字符串:”2011-11-17”

 

0

1

2

3

4

5

6

7

8

9

10

11

2

0

1

1

-

1

1

-

1

7

-11

-10

-9

-8

-7

-6

-5

-4

-3

-2

-1

0

1.Oracle中求字符串的函数为:substr

The syntax for the substr function is:

substr( string, start_position, [ length ] )

string:源字符串

start_position:子串第一个字符在源字符串中的起始位置

length:子串长度

测试结果:

 

1

substr('2011-11-17',0,7)

2011-11

2

substr('2011-11-17',1,7)

2011-11

3

substr('2011-11-17',1,10)

2011-11-17

4

substr('2011-11-17',1,11)

2011-11-17

5

substr('2011-11-17',-1,7)

7

6

substr('2011-11-17',-8,8)

11-11-17

7

substr('2011-11-17',-10,7)

2011-11

8

substr('2011-11-17',-11,7)

null

9

substr('2011-11-17',-11)

null

10

substr('2011-11-17',-1)

7

11

substr('2011-11-17',6)

11-17

12

substr('2011-11-17',11)

null

13

substr (‘2011-11-17’,1,null)

null

14

substr (‘2011-11-17’,null,1)

null

15

substr (‘2011-11-17’,null,null)

null

16

substr ('2011-11-17',1,0)

null

17

substr ('2011-11-17',1,-1)

null

18

substr ('2011-11-17',11,11)

null

Oracle中规定:

1) start_position==0时,子串的起始位置为1,即从第一个字符开始;

2) start_position<0时,字串的起始位置从字符串尾部开始后推。

3) length参数可以缺省。

2. SqlSever中求字符串的函数为:substring

Syntax:

SUBSTRING ( value_expression , start_expression , length_expression )

value_expression:字符串,二进制数据,文本,图像

start_expression子串第一个字符在源字符串中的起始位置

length_expression子串长度

测试结果:

 

1

substring (‘2011-11-17’,0,7)

2011-1

2

substring (‘2011-11-17’,1,7)

2011-11

3

substring (‘2011-11-17’,1,10)

2011-11-17

4

substring (‘2011-11-17’,1,11)

2011-11-17

5

substring (‘2011-11-17’,-1,7)

2011-

6

substring (‘2011-11-17’,-8,8)

7

substring (‘2011-11-17’,-10,7)

8

substring (‘2011-11-17’,-11,7)

9

substring (‘2011-11-17’,-11)

error

10

substring (‘2011-11-17’,-1)

error

11

substring (‘2011-11-17’,6)

error

12

substring (‘2011-11-17’,11)

error

13

substring (‘2011-11-17’,1,null)

null

14

substring (‘2011-11-17’,null,1)

null

15

substring (‘2011-11-17’,null,null)

null

16

substring ('2011-11-17',1,0)

17

substring ('2011-11-17',1,-1)

error

18

substring ('2011-11-17',11,11)

19

substring ('2011-11-17',-1,1)

20

substring ('2011-11-17',-1,2)

21

substring ('2011-11-17',-1,3)

2

22

substring ('2011-11-17',-1,9)

2011-11

SqlServer中规定:

1) start_expression<1时,

length_expression = maxstart_expression + length_expression – 1,0,

子串的起始位置为1,即从第一个字符开始;

2) substring中三个参数缺一不可;

3) 字符串长度不能为负数。

3.扩展:

由于MySqLDB2的数据库没装,就不去测试,现在把相关学习网址附上。

 

Oracle

http://www.techonthenet.com/oracle/functions/substr.php

Sqlserver

http://msdn.microsoft.com/en-us/library/ms187748.aspx

Mysql

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

DB2

http://publib.boulder.ibm.com/infocenter/dzichelp/v2r2/index.jsp?topic=%2Fcom.ibm.db2.doc.sqlref%2Ffsubstr.htm

0
2
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics