在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年龄段查询的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。
推荐阅读
- sqlserver光盘,sqlserver光盘激活码
- 角色扮演游戏85,角色扮演游戏简称
- mysql中怎么删除全部数据库 mysql中怎么删除全部数据库内容
- 超市需要用电脑做什么工作,超市电脑录入员主要做什么工作
- 带跟踪弹飞行游戏,跟踪导弹游戏
- ios手机如何设置黑白模式,ios怎么设置黑白模式
- vb.net数组深拷贝 vba数组复制
- python方位角计算公式,python绝对方向角度值
- js电话号码正则表达式不带区号,js正则表达式匹配电话号码