oracle怎么限定年龄 oracle年龄段查询

在oracle中,如何在指定条件下使用check约束 例如:男生年龄小于23岁 , 女生年龄小于21岁 。CREATE TABLE test_chk_case_when (
idint,
name varchar(10),
sexvarchar(4),
ageint
);
-- 男生年龄小于23岁,女生年龄小于21岁 。
ALTER TABLE test_chk_case_when
ADD CONSTRAINT chk_test_sex_age
CHECK (
CASE WHEN sex='男' AND age23 THEN 1
WHEN sex='女' AND age21 THEN 1
ELSE 0 END = 1
);
SQL INSERT INTO test_chk_case_when VALUES(1, '张三', '男', 22);
已创建 1 行 。
SQL INSERT INTO test_chk_case_when VALUES(2, '李四', '男', 23);
INSERT INTO test_chk_case_when VALUES(2, '李四', '男', 23)
*
ERROR 位于第 1 行:
ORA-02290: 违反检查约束条件 (TEST.CHK_TEST_SEX_AGE)
SQL INSERT INTO test_chk_case_when VALUES(3, '王五', '女', 20);
已创建 1 行 。
SQL INSERT INTO test_chk_case_when VALUES(4, '赵六', '女', 21);
INSERT INTO test_chk_case_when VALUES(4, '赵六', '女', 21)
*
ERROR 位于第 1 行:
ORA-02290: 违反检查约束条件 (TEST.CHK_TEST_SEX_AGE)
Oracle 根据出生日期计算年龄可用to_char函数将date类型转成字符类型 。
如emp表中有如下数据:
如果计算生日的方法是当前日期的年份减去生日的年份 , 可用如下语句:
select ename,hiredate,to_char(sysdate,'yyyy')-to_char(hiredate,'yyyy') from emp;
查询结果:
Oracle PL/SQL 计算年龄根据出生日期查询年龄用的还挺多的 。
简单分析一下,加入一个孩子五岁半了,那习惯认为他还是5岁 。
用Oracle提供的months_between()函数,先获取出生日期和当前日期的月数,然后除以12向下取整:
使用的时候 , 将时间段替换成出生日期对应的字段即可 。
如果,计算年龄用的次数非常多,最好写成自定义函数 。
【oracle怎么限定年龄 oracle年龄段查询】关于oracle怎么限定年龄和oracle年龄段查询的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读