SQL的SubString()函数,sqlsubstring函数
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
相关文章
- 暂无相关文章
用户点评