Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在Oracle中,translate函数做什么_Sql_Oracle_Decode - Fatal编程技术网

Sql 在Oracle中,translate函数做什么

Sql 在Oracle中,translate函数做什么,sql,oracle,decode,Sql,Oracle,Decode,我知道解码功能,但是不知道翻译中的东西是什么意思: decode(translate(cookie_id,'0123456789','') = '','t',cookie_id,null) as cookie_id decode((translate(pickup_date,'0123456789','') = '--' and length(pickup_date) = 10),'t',pickup_date,null) as pickup_date, 这很简单。这句话: translat

我知道解码功能,但是不知道翻译中的东西是什么意思:

decode(translate(cookie_id,'0123456789','') = '','t',cookie_id,null) as cookie_id

decode((translate(pickup_date,'0123456789','') = '--' and length(pickup_date) = 10),'t',pickup_date,null) as pickup_date,

这很简单。这句话:

translate(cookie_id, '0123456789', '')
返回
NULL
。Oracle将空字符串视为
NULL
,甚至明确警告:

您不能使用to_字符串的空字符串来删除所有字符 从返回值中输入from_字符串。Oracle数据库解释 空字符串为null,如果此函数具有null参数,则 它返回null

因此,对于
cookie\u id
,第一个示例始终会产生
NULL

很可能,作者的意图是:

decode(translate(cookie_id, 'a0123456789', 'a'), '', cookie_id, null) as cookie_id
这将检查cookie\u id是否只包含数字,然后返回id。我个人认为正则表达式更容易理解:

(case when regexp_like(cookie_id, '^[0-9]+$') then cookie_id end)
这不需要做一些古怪的事情来处理空字符串