mysql-char(0)-含义

     昨日,工程部的人过来,问我一个问题,有关oracle sql语法转换为mysql语法时,char被设置为0,是什么意思。查找官方文档上解释,摘录如下:

   MySQL 允许以 CHAR(0) 类型建立一个列。一些老程序运行时必需一个列,却又并不使用这个列的值,你就不得不为了适应它而建立该列,在这情况下,CHAR(0) 将是很有益的。当需要一个列仅保存两个值时:一个为 CHAR(0)(该列没有定义为 NOT NULL),这将仅占用一个比特位来存储 2 个值:NULL 或 ""。

原mysql代码如下:

CASE
             WHEN trim(char(0) from cdrtype) = 'O' AND trim(char(0) from cdrtype) = 'V' AND servicecode NOT LIKE '2%' AND specialtype NOT LIKE '8%' THEN    'XXX'

END           

 

---官方文档对trim函数的解释

TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str) TRIM(remstr FROM] str)

Returns the string str with all remstr prefixes or suffixes removed. If none of the specifiers BOTH, LEADING, or TRAILING is given,BOTH is assumed.remstr is optional and, if not specified, spaces are removed.

mysql> SELECT TRIM('  bar   ');
        -> 'bar'
mysql> SELECT TRIM(LEADING 'x' FROM 'xxxbarxxx');
        -> 'barxxx'
mysql> SELECT TRIM(BOTH 'x' FROM 'xxxbarxxx');
        -> 'bar'
mysql> SELECT TRIM(TRAILING 'xyz' FROM 'barxxyz');
        -> 'barx'

This function is multi-byte safe.

 

TRIM([{BOTH | LEADING | TRAILING} [remstr] FROM] str) TRIM(remstr FROM] str) 返回字符串str , 其中所有remstr 前缀和/或后缀都已被删除。若分类符BOTH、LEADIN或TRAILING中没有一个是给定的,则假设为BOTH 。remstr 为可选项,在未指定情况下,可删除空格。

 

--实验如下:

mysql> select trim(char(0) from '  aac ') from dual;   --左边的空格保留输出。。
+-----------------------------+
| trim(char(0) from '  aac ') |
+-----------------------------+
|   aac                             |
+-----------------------------+
1 row in set (0.00 sec)

mysql> select trim('  aac ') from dual;                      --两边的空格全部截断
+----------------+
| trim('  aac ')  |
+----------------+
| aac               |
+----------------+
1 row in set (0.00 sec)

 

感觉有点像伪列,一个小知识点,随笔记存之。。

 

 

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值