■文字列連結
・文字列結合は concat() を使用する。
select concat(123456, 789012);
+------------------------+
| concat(123456, 789012) |
+------------------------+
| 123456789012 |
+------------------------+
select concat('123456', 789012);
+--------------------------+
| concat('123456', 789012) |
+--------------------------+
| 123456789012 |
+--------------------------+
select concat('123456', '789012');
+----------------------------+
| concat('123456', '789012') |
+----------------------------+
| 123456789012 |
+----------------------------+
select concat(key1, data1) from testm;
+---------------------+
| concat(key1, data1) |
+---------------------+
| a0011 |
| a0111 |
| b00210 |
| c003100 |
+---------------------+
■char 文字変換
・char() 関数は、コードに該当する ASCII 文字を返す。
この例では、「1」と言う文字が返る。
select char(49);
+----------+
| char(49) |
+----------+
| 1 |
+----------+
■ascii コード変換
・ascii() 関数は、文字に該当する ASCII コードを返す。
この例では、「49」と言う数字が返る。
select ascii('1');
+------------+
| ascii('1') |
+------------+
| 49 |
+------------+
■小文字化
・lower() 関数は、英字を小文字にして返す。
select lower('ABC012');
+-----------------+
| lower('ABC012') |
+-----------------+
| abc012 |
+-----------------+
■大文字化
・upper() 関数は、英字を大文字にして返す。
select upper('abc012');
+-----------------+
| upper('abc012') |
+-----------------+
| ABC012 |
+-----------------+
■左文字埋め
・lpad() 関数は、文字列の左に指定文字を埋めて指定数切り出します。
(切り出し指定数になるまで繰り返し埋めます。)
select lpad('abc', 5, '0');
+---------------------+
| lpad('abc', 5, '0') |
+---------------------+
| 00abc |
+---------------------+
select lpad('abc', 5, '012');
+-----------------------+
| lpad('abc', 5, '012') |
+-----------------------+
| 01abc |
+-----------------------+
・指定文字省略値はないようで、指定しないとエラーになる。
select lpad('abc', 5, ' ');
+---------------------+
| lpad('abc', 5, ' ') |
+---------------------+
| abc |
+---------------------+
■右文字埋め
・rpad() 関数は、文字列の右に指定文字を埋めて指定数切り出します。
(切り出し指定数になるまで繰り返し埋めます。)
select rpad('abc', 5, '0');
+---------------------+
| rpad('abc', 5, '0') |
+---------------------+
| abc00 |
+---------------------+
select rpad('abc', 5, '012');
+-----------------------+
| rpad('abc', 5, '012') |
+-----------------------+
| abc01 |
+-----------------------+
・指定文字省略値はないようで、指定しないとエラーになる。
select rpad('abc', 5, ' ');
+---------------------+
| rpad('abc', 5, ' ') |
+---------------------+
| abc |
+---------------------+
■左空白削除
・ltrim() 関数は、文字列の左側の空白を除去します。
select ltrim(' abc');
+------------------------+
| ltrim(' abc') |
+------------------------+
| abc |
+------------------------+
■右空白削除
・rtrim() 関数は、文字列の右側の空白を除去します。
select ltrim('abc ');
+------------------------+
| ltrim('abc ') |
+------------------------+
| abc |
+------------------------+
■左右空白削除
・trim() 関数は、文字列の左右の空白を除去します。
select trim(' abc ');
+---------------------------------+
| trim(' abc ') |
+---------------------------------+
| abc |
+---------------------------------+
■文字列置き換え
・replace() 関数は、文字列の置き換えをする。
「a0a1a2」中の a0 を b1 に置き換える場合、次のようにします。
select replace('a0a1a2', 'a0', 'b1');
+-------------------------------+
| replace('a0a1a2', 'a0', 'b1') |
+-------------------------------+
| b1a1a2 |
+-------------------------------+
・translate() 関数は、ないようである。
■文字列切り出し
・substring() 関数は、文字列の切り出しをする。
select substring('abc012', 3, 2);
+---------------------------+
| substring('abc012', 3, 2) |
+---------------------------+
| c0 |
+---------------------------+
・開始位置以降、最後まで切り出す場合は、切り出す文字数を省略できる。
select substring('abc012', 3);
+------------------------+
| substring('abc012', 3) |
+------------------------+
| c012 |
+------------------------+
■文字列検索
・locate() 関数は、文字列の検索を行う。
select locate('c0', 'abc012');
+------------------------+
| locate('c0', 'abc012') |
+------------------------+
| 3 |
+------------------------+
select locate('c0', 'abc012c0', 4);
+-----------------------------+
| locate('c0', 'abc012c0', 4) |
+-----------------------------+
| 7 |
+-----------------------------+
■文字列の長さ
・length() 関数は、文字列の長さを返す。
select length('abc012');
+------------------+
| length('abc012') |
+------------------+
| 6 |
+------------------+
■文字列繰り返し
・repeat() 関数は、文字列を繰り返し返す。
select repeat('abc012', 2);
+---------------------+
| repeat('abc012', 2) |
+---------------------+
| abc012abc012 |
+---------------------+
■数値から文字列へ変換 (数値フォーマット、書式変換)
・文字列としての結合は concat() を使用する。
select concat(123456, 789012);
+------------------------+
| concat(123456, 789012) |
+------------------------+
| 123456789012 |
+------------------------+
select concat('123456', 789012);
+--------------------------+
| concat('123456', 789012) |
+--------------------------+
| 123456789012 |
+--------------------------+
select concat('123456', '789012');
+----------------------------+
| concat('123456', '789012') |
+----------------------------+
| 123456789012 |
+----------------------------+
・三桁毎にカンマを付けるには、次のようにする。
select format(123456, 0);
+-------------------+
| format(123456, 0) |
+-------------------+
| 123,456 |
+-------------------+
select format(123456, 2);
+-------------------+
| format(123456, 2) |
+-------------------+
| 123,456.00 |
+-------------------+
■文字列から数値へ変換
・勝手にやるみたいです。
select '0123' + 100;
+--------------+
| '0123' + 100 |
+--------------+
| 223 |
+--------------+
select '0123' + '100';
+----------------+
| '0123' + '100' |
+----------------+
| 223 |
+----------------+
■型変換
・cast() 関数は、ANSI 規程の変換関数です。
select cast(concat('123', '456') as signed);
+--------------------------------------+
| cast(concat('123', '456') as signed) |
+--------------------------------------+
| 123456 |
+--------------------------------------+
select cast(concat('-123', '456') as unsigned);
+-----------------------------------------+
| cast(concat('-123', '456') as unsigned) |
+-----------------------------------------+
| 18446744073709428160 |
+-----------------------------------------+
select cast(123 + 100 as char);
+-------------------------+
| cast(123 + 100 as char) |
+-------------------------+
| 223 |
+-------------------------+
0 件のコメント:
コメントを投稿