SQL的SubString()函数

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_namestore_name
EastBoston
EastNew York
WestLos Angeles
WestSan 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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值