変換関数の使用

Oracle SQL 入門

Hadrien Lacroix

Content Developer

データ型

データ型は、列に格納できるデータの種類を定義します。

数値データ 文字データ 日付データ
AVG x
SUM x
MIN x x x
COUNT x x x

変換関数は列を別のデータ型に変換します

Oracle SQL 入門

変換関数

  • データ型の変換
    • 暗黙的なデータ型変換
    • 明示的なデータ型変換
Oracle SQL 入門

暗黙的なデータ型変換

SQL は自動でデータ型を変換します

SELECT 'Track length: ' || Milliseconds
FROM Track
| 'Track length: ' || Milliseconds     |
|--------------------------------------|
| Track length: 343719                 |
| Track length: 342562                 |
| ...                                  |
Oracle SQL 入門

明示的なデータ型変換

変換関数とデータ型の概要図

Oracle SQL 入門

文字データへの変換

TO_CHAR 関数で数値文字列を文字形式に変換:

SELECT UnitPrice, TO_CHAR(UnitPrice, '$999.99') 
FROM InvoiceLine
| UnitPrice   | TO_CHAR(UnitPrice, '$9.99') |
|-------------|-----------------------------|
| 0.99        | $0.99                       |
| 1.99        | $1.99                       |
| ...         | ...                         |
  • $ : 浮動ドル記号
  • . : 小数点位置
  • 9 : 桁の指定(9 の数で表示幅が決まる)
  • 0 : 先頭ゼロの指定
  • , : 桁区切りの位置
Oracle SQL 入門

文字データへの変換

TO_CHAR 関数で日付文字列を文字形式に変換:

SELECT TO_CHAR(BirthDate, 'DD-MON-YYYY') 
FROM Employee
| TO_CHAR(BirthDate, 'DD-MON-YYYY') |
|-----------------------------------|
| 19-SEP-1947                       |
| ...                               |
  • YYYY: 西暦4桁
  • YEAR: 年を英語表記
  • MM: 月2桁
  • MONTH: 月の英語名
  • MON: 月の3文字表記
  • DY: 曜日の3文字表記
  • DAY: 曜日の英語名
  • DD: 日(数値)
Oracle SQL 入門

数値データへの変換

TO_NUMBER 関数で文字列を数値形式に変換:

SELECT TO_NUMBER('$15,000.75', '$999,999.99')
FROM DUAL
| TO_NUMBER('$15,000.75', '$999,999.99') |
|----------------------------------------|
| 15000.75                               |
  • $ : 浮動ドル記号
  • . : 小数点位置
  • 9 : 桁の指定(9 の数で表示幅が決まる)
  • 0 : 先頭ゼロの指定
  • , : 桁区切りの位置
Oracle SQL 入門

日付データへの変換

TO_DATE 関数で文字列を日付形式に変換:

SELECT TO_DATE('2016-01-31','YYYY-MM-DD')
FROM DUAL
| TO_DATE('2016-01-31','YYYY-MM-DD')     |
|----------------------------------------|
| 31-JAN-16                              |
  • YYYY: 西暦4桁
  • YEAR: 年を英語表記
  • MM: 月2桁
  • MONTH: 月の英語名
  • MON: 月の3文字表記
  • DY: 曜日の3文字表記
  • DAY: 曜日の英語名
  • DD: 日(数値)
Oracle SQL 入門

どのデータ型変換を使うべきか

注意標識

 

  • 変換は常に明示的に行う
    • 読みやすく保守しやすい
    • 将来も動作する
Oracle SQL 入門

練習しましょう!

Oracle SQL 入門

Preparing Video For Download...