.NET開発者のためのブログメディア
SQL Serverで数値と文字列を変換する。0埋めの方法とは?
レポートや帳票にデータを転記する際に、数値から文字列に変換することや、逆に文字列を数値に置き換えるなどの対応が必要な場面は、意外と多いのではないでしょうか。アプリケーション側で対応するのもひとつの方法ですが、データベースにSQL Serverを利用しているのならば、ぜひFORMAT関数やCONVERT関数を使ってみてください。
- SE
- 画面からボタン押下でレポート出力する際に、数値項目に文字列が設定されてシステムエラーとなってしまいました。こういったエラーはどうやって回避できますか?
- PM
- そういう場合には、SQL Sever側で文字列項目を数値項目に変換してあげましょう。FORMAT関数やCONVERT関数が用意されていますので、それらの簡単な使い方を解説していきます。
実行環境
・SQL Server 2018
目次
FORMAT関数とCONVERT関数の基本
1
|
FORMAT (value, format [, culture ])
|
引数 | 説明 |
---|---|
value | 文字列に変換したい対象の数値データを設定します |
format | 標準フォーマット文字列とカスタムフォーマット文字列を指定することができます |
culture | 通貨などカルチャーによって変換の結果が変わるものに対して設定します |
標準フォーマット文字列とは、F: 固定小数点、N:桁区切り記号つき、C: 通貨などがあり、続けて小数点以下桁数を0~99までの数字で指定することが可能なものを指します。
カスタムフォーマット文字列とは、「0:その桁に数字があればその数字を、なければ0が設定される」「#:その桁に数字があればその数字を、なければ空白スペースが設定される」などを指定することが可能なものを指します。
どちらで指定しても元の数値の小数点以下の数字が指定した桁数より多い場合、値は四捨五入されることが注意点として挙げられます。
1
|
CONVERT(type, value [, style])
|
■引数の解説
引数 | 説明 |
---|---|
type | 変換したい型を設定します |
value | 文字列に変換したい対象の数値データを設定します |
style | 第3引数を使用する場面は日付に変換する時です。数値と文字列の型変換では使用することはありません |
数値から文字列への変換方法
数値から文字列へ変換する方法をFORMAT関数のカスタムフォーマット文字列で確認していきましょう。
1
2
3
|
DECLARE @Value decimal(10,3) = 11430.445
SELECT FORMAT(@Value, '#,###.##')
|
実行結果
1
2
3
|
DECLARE @Value int = 20200816
SELECT CONVERT(nvarchar, @Value) as CON_VAR
|
実行結果
文字列から数値への変換方法
文字列から数値へ変換する場合はCONVERT関数のみが使用可能です。以下で使い方を確認していきましょう。
1
2
3
|
DECLARE @Value varchar(10) = '20200816'
SELECT CONVERT(int, @Value) as CON_INT
|
実行結果
数値を0埋めする方法
次に、数値を前0で埋める方法(ゼロパッティング)も紹介します。数値を文字列に型変換を行った際には、0で埋めて桁数を揃えるといった場面があるかもしれません。ぜひこの機会に0埋めの方法も理解しておくことをおすすめします。
1
2
3
4
|
DECLARE @Value int = 3
--4桁の0埋めをしたい場合
SELECT FORMAT(@Value,'0000')
SELECT FORMAT(@Value,'D4')
|
実行結果
- SE
- 型変換が簡単に行えました。0埋めの方法もバッチリです。これからは型変換でエラーにならないように対処していきます!
- PM
- 型変換でのシステムエラーは意外と多いです。しっかりとデータベース側でFORMAT関数やCONVERT関数を活用して、型変換の考慮は行っておきたいところですね。
数値と文字列の変換は多くの場面で必要となってきます
アプリケーション開発を行う上で、型変換を必要とする場面は多いのではないでしょうか。その中でも今回解説した、数値と文字列の変換は必ずといえるほど出てきます。
SQL Serverでは、FORMAT関数やCONVERT関数など便利な型変換関数が用意されていますので、上手に使いこなして、型変換エラーなどが発生しないように対処しましょう。また、合わせて0埋めの方法も覚えておくと便利です。
Search キーワード検索
Popular 人気の記事
-
【VB.NET入門】DataGridViewの使い方まとめ
公開: 更新:
reccomended おすすめ記事
-
【.NETが統合】.NET 5の概要と今後のリリース予定
公開: 更新:
Categories 連載一覧
Tags タグ一覧
Jobs 新着案件
-
開発エンジニア/東京都品川区/【WEB面談可】/在宅ワーク
月給29万~30万円東京都品川区(大崎駅) -
遠隔テストサービス機能改修/JavaScript/東京都港区/【WEB面談可】/テレワーク
月給45万~60万円東京都港区(六本木駅) -
病院内システムの不具合対応、保守/東京都豊島区/【WEB面談可】/テレワーク
月給30万~30万円東京都豊島区(池袋駅) -
開発/JavaScript/東京都豊島区/【WEB面談可】/テレワーク
月給50万~50万円東京都豊島区(大塚駅) -
債権債務システム追加開発/東京都文京区/【WEB面談可】/在宅勤務
月給62万~67万円東京都文京区(後楽園駅)