oracle按照身份证字段是否为空计算年龄值
时间: 2023-06-29 12:12:30 浏览: 62
在 Oracle 中,可以使用以下 SQL 语句按照身份证字段是否为空来计算年龄值:
```sql
SELECT
CASE
-- 如果身份证字段不为空,则根据身份证计算年龄
WHEN id_card IS NOT NULL THEN
TRUNC((MONTHS_BETWEEN(SYSDATE, TO_DATE(SUBSTR(id_card, 7, 8), 'YYYYMMDD'))) / 12)
-- 如果身份证字段为空,则根据出生日期计算年龄
ELSE
TRUNC(MONTHS_BETWEEN(SYSDATE, birthday) / 12)
END AS age
FROM your_table;
```
这个 SQL 语句使用了 CASE 函数来判断身份证字段是否为空,如果不为空,则使用身份证计算年龄;如果为空,则使用出生日期计算年龄。其中,MONTHS_BETWEEN 函数用于计算两个日期之间相差的月份数,TRUNC 函数用于截取整数部分,得到年龄值。请将 `your_table` 替换为实际的表名。
相关问题
oracle case when判断字段是否为空
在Oracle中,可以使用CASE WHEN语句来判断字段是否为空。具体语法如下:
```
SELECT CASE WHEN 字段名 IS NULL THEN '字段为空' ELSE '字段不为空' END FROM 表名;
```
其中,CASE WHEN语句会先判断字段是否为空,如果为空则返回'字段为空',否则返回'字段不为空'。需要注意的是,在Oracle中判断字段是否为空时,应该使用IS NULL而不是= NULL。
plsql写oracle语句:查某个字段不为空的值
你可以使用以下的 SQL 语句来查询某个表中某个字段不为空的值:
```
SELECT * FROM table_name WHERE column_name IS NOT NULL;
```
其中,`table_name` 是你要查询的表名,`column_name` 是你要查询的字段名。这条 SQL 语句将会返回所有该字段不为空的记录。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)