使用Where子句后调用SQL Substr函数

时间:2014-09-12 01:50:22

标签: sql sqlite

我有一个SQL查询,如下所示:

select telephone from tableA where telephone !="";

现在,当上述工作正常时,它会正常运行。但是,在我所在地区,电话需要长达10位,有时数据缺少前导'0',我已将sqlQuery更改为如下:

select substr('0000000000'||telephone,-10,10) from tableA where telephone != "";

上述查询不适用于“where”子句,因为所有空字段现在都包含'0000000000'。

有没有办法首先检查电话是否为空,然后执行上述子功能?

上面的例子只是一个简单的例子,所以我可以改变电话的位置!='0000000000'但我还有其他更复杂的查询,我想使用它而且我不想改变where子句。

1 个答案:

答案 0 :(得分:1)

  

以上查询不适用于"其中"所有空字段现在都包含' 0000000000'。

不,不是这样。您的查询中包含where telephone != ""的事实意味着结果中实际上不包含空字段的行。

select只会提取符合where子句中指定条件的行,然后它会将所有转换应用于已提取的行。

  

有没有办法首先检查电话是否为空,然后执行上述子功能?

是的,有。你正在做这件事。问题解决了: - )