2010年02月14日
SQL豆知識【50】
第50回目のSQLの豆知識としまして
図1の様な『商品マスタ』の
テーブルデータが存在していたとします。
商品マスタ
図1
図1の『商品マスタ』を基に
文字列関数(STUFF・SUBSTRING)についての
説明を行っていきたいと思います。
① 『STUFF』
文字列の入れ替えを行った文字列を返す関数です。
書式としましては以下の様になります。
≪SQL SERVER≫
【書式】
STUFF(string1,position,length,string2)
【引数】
string1 :入れ替え元文字列
position:入れ替え開始文字位置
length :入れ替える文字数
string2 :入れ替える文字列
【戻り値】
入れ替えられた文字列
それでは『STUFF』について実際に行ってみたいと思います。
商品マスタ・商品名の3文字目から3文字分を入れ替えてみます。
SELECT 商品ID,商品名,STUFF(商品名,3,3,'てすと') 入れ替え商品名
FROM 商品マスタ
図2
図2の様に、
『商品マスタ・商品名』の3文字目から3文字分が『てすと』という
文字列に入れ替わったのが分かります。
注意点とし以下の内容が有ります。
・全角・半角のバイト数は関係無しに、文字数単位で入れ替えが行われます。
・入れ替えが行われる対象の文字列の文字数が
入れ替える文字列の文字数より少ない場合は、
入れ替え後の文字列の文字数は多くなり、
その逆の場合は、文字数は少なくなります。
② 『SUBSTRING』
文字単位で文字列の抜き取りを行う関数です。
書式としましては以下の様になります。
≪SQL SERVER≫
【書式】
SUBSTRING(string,position,length)
【引数】
string :抜き取り元文字列
position:抜き取り開始文字位置
length :抜き取る文字数
【戻り値】
抜き取られた文字列
それでは『SUBSTRING』について実際に行ってみたいと思います。
商品マスタ・商品名の4文字目から3文字分を抜き取ってみます。
SELECT 商品ID,商品名,SUBSTRING(商品名,4,3) 抜き取り商品名
FROM 商品マスタ
図3
図3の様に、
『商品マスタ・商品名』の4文字目から3文字分が抜き取られたのが分かります。
注意点とし以下の内容が有ります。
・全角・半角のバイト数は関係無しに、文字数単位で抜き取りが行われます。
・抜き取りが行われる対象の文字列の文字数が
指定した文字数分より少ない場合は、
対象箇所に存在する分だけ抜き取ります。
・抜き取りが行われる対象箇所に文字列が存在しない場合は、
文字列の抜き取りが行われません。
ちなみにORACLEでの同じ処理の関数として
『SUBSTR』関数があります。
書式としましては以下の様になります。
≪ORACLE≫
【書式】
SUBSTR(string,position,length)
【引数】
string :抜き取り元文字列
position:抜き取り開始文字位置
length :抜き取る文字数
【戻り値】
抜き取られた文字列
更に、文字数単位の抜き取り以外にも
バイト数単位で抜き取りを行う事の出来る
『SUBSTRB』関数があります。
今回は、基本的な使用方法を説明しましたが、
色々な使い方がありますので是非、使用して試してみてください。
次回も引き続き、
『文字列関数』の説明を行います。
ブログランキングに参加しています。
---------------------------------------------------------------------------------------------------------------
■ 弊社の事をお知りになりたい方
■ 弊社へ入社希望の方(転職希望の方)
■ その他、ご相談やご連絡を取りたい方は
画面上部の「オ-ナ-へメッセ-ジ」よりご連絡を下さい。
図1の様な『商品マスタ』の
テーブルデータが存在していたとします。
商品マスタ
図1
図1の『商品マスタ』を基に
文字列関数(STUFF・SUBSTRING)についての
説明を行っていきたいと思います。
① 『STUFF』
文字列の入れ替えを行った文字列を返す関数です。
書式としましては以下の様になります。
≪SQL SERVER≫
【書式】
STUFF(string1,position,length,string2)
【引数】
string1 :入れ替え元文字列
position:入れ替え開始文字位置
length :入れ替える文字数
string2 :入れ替える文字列
【戻り値】
入れ替えられた文字列
それでは『STUFF』について実際に行ってみたいと思います。
商品マスタ・商品名の3文字目から3文字分を入れ替えてみます。
SELECT 商品ID,商品名,STUFF(商品名,3,3,'てすと') 入れ替え商品名
FROM 商品マスタ
図2
図2の様に、
『商品マスタ・商品名』の3文字目から3文字分が『てすと』という
文字列に入れ替わったのが分かります。
注意点とし以下の内容が有ります。
・全角・半角のバイト数は関係無しに、文字数単位で入れ替えが行われます。
・入れ替えが行われる対象の文字列の文字数が
入れ替える文字列の文字数より少ない場合は、
入れ替え後の文字列の文字数は多くなり、
その逆の場合は、文字数は少なくなります。
② 『SUBSTRING』
文字単位で文字列の抜き取りを行う関数です。
書式としましては以下の様になります。
≪SQL SERVER≫
【書式】
SUBSTRING(string,position,length)
【引数】
string :抜き取り元文字列
position:抜き取り開始文字位置
length :抜き取る文字数
【戻り値】
抜き取られた文字列
それでは『SUBSTRING』について実際に行ってみたいと思います。
商品マスタ・商品名の4文字目から3文字分を抜き取ってみます。
SELECT 商品ID,商品名,SUBSTRING(商品名,4,3) 抜き取り商品名
FROM 商品マスタ
図3
図3の様に、
『商品マスタ・商品名』の4文字目から3文字分が抜き取られたのが分かります。
注意点とし以下の内容が有ります。
・全角・半角のバイト数は関係無しに、文字数単位で抜き取りが行われます。
・抜き取りが行われる対象の文字列の文字数が
指定した文字数分より少ない場合は、
対象箇所に存在する分だけ抜き取ります。
・抜き取りが行われる対象箇所に文字列が存在しない場合は、
文字列の抜き取りが行われません。
ちなみにORACLEでの同じ処理の関数として
『SUBSTR』関数があります。
書式としましては以下の様になります。
≪ORACLE≫
【書式】
SUBSTR(string,position,length)
【引数】
string :抜き取り元文字列
position:抜き取り開始文字位置
length :抜き取る文字数
【戻り値】
抜き取られた文字列
更に、文字数単位の抜き取り以外にも
バイト数単位で抜き取りを行う事の出来る
『SUBSTRB』関数があります。
今回は、基本的な使用方法を説明しましたが、
色々な使い方がありますので是非、使用して試してみてください。
次回も引き続き、
『文字列関数』の説明を行います。
ブログランキングに参加しています。
---------------------------------------------------------------------------------------------------------------
■ 弊社の事をお知りになりたい方
■ 弊社へ入社希望の方(転職希望の方)
■ その他、ご相談やご連絡を取りたい方は
Posted by JOB CAFE at 09:37│Comments(0)
│SQL