ORACLE 截取字符串
文字列の一部を切り出すには、SUBSTR関数またはSUBSTRB関数を使用します。
SUBSTR(文字列 , 開始位置 ) |
文字列 の開始位置 から後ろの文字列を返します |
SUBSTRB(文字列 , 開始位置 ) |
SUBSTR(文字列 , 開始位置 , 文字数 ) |
文字列 の開始位置 から文字数分の文字を返します |
SUBSTRB(文字列 , 開始位置 , バイト数 ) |
文字列 の開始位置 からバイト数分の文字を返します |
※SUBSTRとSUBSTRBの違い
SUBSTRが文字列の位置を文字数で扱うことに対して、SUBSTRBは文字列の位置をバイト数で扱います。
例1) 文字列'あいうえお'の3文字目以降の文字列を返します。(SUBSTR)
|
select substr('あいうえお',3) from dual
結果は、'うえお'が返されます。 |
例2) 文字列'あいうえお'の3バイト目以降の文字列が返されます。(SUBSTRB)
|
select substrb('あいうえお',3) from dual
結果は、'いうえお'が返されます。 |
例3) 文字列'あいうえお'の3文字目から2文字返されます。(SUBSTR)
|
select substr('あいうえお',3,2) from dual
結果は、'うえ'が返されます。 |
例4) 文字列'あいうえお'の3バイト目から2バイト返されます。(SUBSTRB)
|
select substrb('あいうえお',3,2) from dual
結果は、'い'が返されます。 |
例5)文字列'あいうえお'の最後から2文字目以降の文字列を返します。(SUBSTR)
|
select substr('あいうえお',-2) from dual
結果は、'えお'が返されます。 |
※開始位置に負の数を指定すると、文字列の最後から検索されます。
SQL Server 截取字符串
SQL Server 2005 Books Online<!---->
SUBSTRING (Transact-SQL)<!---->
<!--Content type: DocStudio. Transform: devdiv2mtps.xslt.-->
文字、バイナリ、テキスト、またはイメージ型の式の一部を返します。SQL Server 2005 で、この関数と一緒に使用できる有効なデータ型の詳細については、「データ型 (Transact-SQL)」を参照してください。
A. SUBSTRING に文字列を使用する
B. SUBSTRING に text、ntext、および image 型のデータを使用する
次の例では、pubs データベースにある pub_info テーブルの text および image データ列から、それぞれ最初の 200 文字を返します。text データは varchar として返され、image データは varbinary として返されます。
USE
pubs
SELECT
pub_id,
SUBSTRING
(logo,
1
,
10
)
AS
logo,
SUBSTRING
(pr_info,
1
,
10
)
AS
pr_info
FROM
pub_info
WHERE
pub_id
=
'
1756
'
以下に結果セットを示します。
pub_idlogopr_info
--
------------------------------------
1756
0x474946383961E3002500
This
is
sa
(
1
row(s)affected)
次の例では、text データと ntext データの両方に対する SUBSTRING の効果を示します。この例では最初に、npub_info という名前の pubs データベースに新しいテーブルを作成します。次に、pub_info.pr_info 列の最初の 80 文字から npub_info テーブルの pr_info 列を作成し、最初の文字として ü を追加します。最後に、INNER JOIN を使って、text および ntext の両方のパブリッシャ情報列から、すべてのパブリッシャ ID 番号と SUBSTRING を取得します。
PostgreSQL 截取字符串
--
POSTGRESQL
select
--
"華23人民"
substring
(
'
中華23人民共和国
'
,
2
,
5
)
as
a,
--
"華2人3民"
substring
(
'
中華2人3民共和国
'
,
2
,
5
)
as
b,
--
"中華2人"
substring
(
'
中華2人3民共和国
'
,
0
,
5
)
as
c,
--
"中華2人3"
substring
(
'
中華2人3民共和国
'
,
1
,
5
)
as
d;
.NET 截取字符串
<script type="text/Javascript"> var ExpCollDivStr = ExpCollDivStr; ExpCollDivStr = ExpCollDivStr + "ctl00_LibFrame_ctl13bbe24e5,"; var ExpCollImgStr = ExpCollImgStr; ExpCollImgStr = ExpCollImgStr + "ctl00_LibFrame_ctl13img,"; </script>
<script type="text/Javascript"> var ExpCollDivStr = ExpCollDivStr; ExpCollDivStr = ExpCollDivStr + "ctl00_LibFrame_ctl15ac4267f,"; var ExpCollImgStr = ExpCollImgStr; ExpCollImgStr = ExpCollImgStr + "ctl00_LibFrame_ctl15img,"; </script>
从此实例检索子字符串。子字符串从指定的字符位置开始且具有指定的长度。
命名空间:System
程序集:mscorlib(在 mscorlib.dll 中)
语法
VisualBasic(用法)
Dim
instance
As
String
Dim
startIndex
As
Integer
Dim
length
As
Integer
Dim
returnValue
As
String
returnValue
=
instance.Substring(startIndex,length)
C#
public
string
Substring(
int
startIndex,
int
length
)
startIndex 子字符串的起始位置的索引。
length子字符串中的字符数。
返回值
一个 String,它等于此实例中从
startIndex 开始的长度为
length 的子字符串,如果
startIndex 等于此实例的长度且
length 为零,则为 Empty。
异常
异常类型 条件
ArgumentOutOfRangeException |
startIndex 加 length 之和指示一个不在此实例内的位置。 - 或 - startIndex 或 length 小于零。 |
备注
startIndex 从零开始。
<ktable keywords="tt_M:System.String.Substring(System.Int32,System.Int32)" disambiguator="table" xmlns:mshelp="http://msdn.microsoft.com/mshelp" indexmoniker="!DefaultDynamicLinkIndex" topicheader="主题" locheader="位置"></ktable>
示例
下面的代码示例在三种情况下使用 Substring 方法,在字符串中分隔子字符串。在两种情况下,在比较中使用子字符串,在第三种情况下,由于指定的参数无效而引发异常。
Visual Basic
Dim
myString
As
String
=
"
abc
"
Dim
test1
As
Boolean
=
String
.Compare(myString.Substring(
2
,
1
),
"
c
"
)
=
0
'
Thisistrue.
myString.Substring(
3
,
1
)
'
ThisthrowsArgumentOutOfRangeException.
Dim
test2
As
Boolean
=
String
.Compare(myString.Substring(
3
,
0
),
String
.Empty)
=
0
'
Thisistrue.
C#
StringmyString
=
"
abc
";
bool
test1
=String.Compare(myString.Substring(2
,
1
),
"
c
"
)
==
0
;
//
Thisistrue.
myString.Substring(
3
,
1
);
//
ThisthrowsArgumentOutOfRangeException.
bool
test2
=
String.Compare(myString.Substring(
3
,
0
),String.Empty)
==
0
;
//Thisistrue.
语法2
异常
备注
索引是从零开始的。
<ktable keywords="tt_M:System.String.Substring(System.Int32)" disambiguator="table" xmlns:mshelp="http://msdn.microsoft.com/mshelp" indexmoniker="!DefaultDynamicLinkIndex" topicheader="主题" locheader="位置"></ktable>
示例
下面的代码示例演示如何从字符串中获取子字符串。
Visual Basic
Imports
System
Public
ClassSubStringTest
ClassSubStringTest
PublicSharedSubMain()SubMain()
DiminfoAsString()={"Name:FelicaWalker","Title:Mz.","Age:47","Location:Paris","Gender:F"}
DimfoundAsInteger=0
Console.WriteLine("Theinitialvaluesinthearrayare:")
DimsAsString
ForEachsIninfo
Console.WriteLine(s)
Nexts
Console.WriteLine("{0}Wewanttoretrieveonlythekeyinformation.Thatis:",Environment.NewLine)
ForEachsIninfo
found=s.IndexOf(":")
Console.WriteLine(s.Substring((found+1)).Trim())
Nexts
EndSub'Main
EndClass
'
SubStringTest
C#
using
System;
public
class
SubStringTest
...
{
publicstaticvoidMain()...{
string[]info=...{"Name:FelicaWalker","Title:Mz.","Age:47","Location:Paris","Gender:F"};
intfound=0;
Console.WriteLine("Theinitialvaluesinthearrayare:");
foreach(stringsininfo)
Console.WriteLine(s);
Console.WriteLine("{0}Wewanttoretrieveonlythekeyinformation.Thatis:",Environment.NewLine);
foreach(stringsininfo)...{
found=s.IndexOf(":");
Console.WriteLine(s.Substring(found+1).Trim());
}
}
}
平台
<supportedplatforms xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5"></supportedplatforms>Windows 98、Windows 2000 SP4、Windows Millennium Edition、Windows Server 2003、Windows XP Media Center Edition、Windows XP Professional x64 Edition、Windows XP SP2、Windows XP Starter Edition
.NET Framework 并不是对每个平台的所有版本都提供支持。有关受支持版本的列表,请参见<link keywords="298275e2-da1d-4618-9f74-6a3567832350" xmlns:mshelp="http://msdn.microsoft.com/mshelp">。
版本信息
.NET Framework
受以下版本支持:2.0、1.1、1.0
.NET Compact Framework
受以下版本支持:2.0、1.0PHP
//
汉字好像有乱码,仅列举非汉字
$str
=
"
2007-08-29
"
;
//
2007
$a
=
substr
(
$str
,
0
,
4
);
//
08
$b
=
substr
(
$str
,
6
,
2
);
//
29
$c
=
substr
(
$str
,
9
,
2
);