欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > > 文章正文

SQL的SubString()函数,sqlsubstring函数

来源: javaer 分享于  点击 46178 次 点评:45

SQL的SubString()函数,sqlsubstring函数


SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分。这个函数的名称在不同的资料库中不完全一样:

  • MySQL: SUBSTR(), SUBSTRING()
  • Oracle: SUBSTR()
  • SQL Server: SUBSTRING()

最常用到的方式如下 (在这里我们用SUBSTR()为例):

SUBSTR(str,pos): 由<str>中,选出所有从第<pos>位置开始的字元。请注意,这个语法不适用于SQL Server上。

SUBSTR(str,pos,len): 由<str>中的第<pos>位置开始,选出接下去的<len>个字元。

假设我们有以下的表格:

Geography 表格

region_name store_name
East Boston
East New York
West Los Angeles
West San Diego

例1:

SELECT SUBSTR(store_name, 3)
FROM Geography
WHERE store_name = 'Los Angeles';

结果:

's Angeles'

例2:

SELECT SUBSTR(store_name,2,4)
FROM Geography
WHERE store_name = 'San Diego';

结果:

'an D'

 

应用实例:

 

如何利用身份证号码来计算年龄?

create   table   #T   (Ptype   int   ,   PNO   varchar(50))   --ptype表示類別1表示15位
  insert   into   #T  
 
select   1,'430422790312881'  
 
insert   into   #T  
 
select   2,'320324198006140921'   
 
select   year(getdate())-     case     Ptype     when   1   then     cast(('19'+   substring(PNO,7,2))   as   int)   else     cast(substring(PNO,7,4)   as     int)   end  
 
from   #T  
 
drop   table   #T
/*
           
-----------
29
28

(影響 2 個資料列)
*/

 

 

create   table   #T   (   id   varchar(50))  
insert   into   #T  
select   '430422790312881'   union all
select   '320324198006140921'  

select
   
case when len(id) = 15 then
       
datediff(year,convert(datetime,(substring(id,7,6))),getdate())
   
else
       
datediff(year,convert(datetime,(substring(id,7,8))),getdate())
   
end 年龄
from #T

drop table #T
结果:
29
28

相关文章

    暂无相关文章

用户点评