constraint-SQL:在check约束中使用Case函数

问题描述

SQL:在check约束中使用Case函数
公司A,这个公司有个规定,女职员的工资必须高于1000块。如果用Check和Case来表现的话,如下所示:
CONSTRAINT check__salary CHECK
( CASE WHEN sex = '2'
THEN CASE WHEN salary > 1000
THEN 1 ELSE 0 END
ELSE 1 END = 1 _)

我想问下上面语句中的Then 1 Else 1,就表示是符合约定,而0则表示不符合约束,为什么呢?

解决方案

这个规则你自己定啊,你用-1、-1000都可以。但是人们一般会有一个约定,0和1用得最多。

解决方案二:
这个不用那么纠结吧,只是通常的一种用法罢了。

时间: 2024-10-01 00:47:57

constraint-SQL:在check约束中使用Case函数的相关文章

constraint-在check中使用case函数,为什么end后面要加 =1

问题描述 在check中使用case函数,为什么end后面要加 =1 alter table Salaryadd CONSTRAINT check__salary CHECK( CASE WHEN sex = '2' THEN CASE WHEN salary > 1000 THEN 1 ELSE 0 END ELSE 1 END =1 )_**_** 为什么上面语句最后结束的时候(end 后面)要加上 "=1",否则会提示下面的错误信息:An expression of non

SQL点滴20—T-SQL中的排名函数

原文:SQL点滴20-T-SQL中的排名函数   提到排名函数我们首先可能想到的是order by,这个是排序,不是排名,排名需要在前面加个名次序号的,order by是没有这个功能的.还可能会想到identity(1,1),它也给了一个序号,但是不能保证给出的序号是连续升序的.除非能够保证所有的Insert语句都能够正确成功地完成,并且没有删除操作,实际的使用中大多数的表都不能保证这样. 好在SQL Server中提供了一些排名函数来辅助实现这些功能.排名函数按照需要的顺序对数据进行排名,并提

SQL Server Check 约束用法详解

一.定义:        CHECK 约束用于限制列中的值的范围.        如果对单个列定义 CHECK 约束,那么该列只允许特定的值.        如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制.   做数据库,就必须要会写约束. 运算符 含义   = 等于   > 大于   < 小于   >= 大于或等于   <= 小于或等于   <> 不等于   ! 非(Java语言中为not)   通配符 解释 示例 '_' 一个字符 A Li

sqlserver Case函数应用介绍_MsSql

--简单Case函数CASE sex         WHEN '1' THEN '男'         WHEN '2' THEN '女'ELSE '其他' END--Case搜索函数CASE WHEN sex = '1' THEN '男'         WHEN sex = '2' THEN '女'ELSE '其他' END 这两种方式,可以实现相同的功能.简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式.还有一个需要注意的问题,Case函数

sqlserver Case函数应用介绍

--简单Case函数CASE sex         WHEN '1' THEN '男'         WHEN '2' THEN '女'ELSE '其他' END--Case搜索函数CASE WHEN sex = '1' THEN '男'         WHEN sex = '2' THEN '女'ELSE '其他' END 这两种方式,可以实现相同的功能.简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式.还有一个需要注意的问题,Case函数

SQL Server中Check约束的学习教程_MsSql

0.什么是Check约束? CHECK约束指在表的列中增加额外的限制条件. 注: CHECK约束不能在VIEW中定义.CHECK约束只能定义的列必须包含在所指定的表中.CHECK约束不能包含子查询. 创建表时定义CHECK约束 1.1 语法: CREATE TABLE table_name ( column1 datatype null/not null, column2 datatype null/not null, ... CONSTRAINT constraint_name CHECK (

SQL Server中Check约束的学习教程

0.什么是Check约束? CHECK约束指在表的列中增加额外的限制条件. 注: CHECK约束不能在VIEW中定义.CHECK约束只能定义的列必须包含在所指定的表中.CHECK约束不能包含子查询. 创建表时定义CHECK约束 1.1 语法: CREATE TABLE table_name ( column1 datatype null/not null, column2 datatype null/not null, ... CONSTRAINT constraint_name CHECK (

查询库中的CHECK约束信息的两个视图(SQL SERVER)

server|视图 以下两个视图均基于系统表sysobjects.syscomments和系统视图sysconstraints,查询结果中包括表ID.表名.列ID.列名.CHECK约束ID.CHECK约束名.CHECK约束status值以及CHECK约束的内容,TCCView为Table-Column-Check View,结果中均为列级CHECK约束,TCView为Table-Check View,结果中均为表级CHECK约束. 关于字段status的值的作用,参见不用企业管理器的情况下得知C

SQL基础--&amp;gt; 约束(CONSTRAINT)

--============================= --SQL基础--> 约束(CONSTRAINT) --=============================   一.几类数据完整性     实体完整性:表中记录不重复(任何两条记录不全等)并且每条记录都有一个非空主键     域完整性:表中字段值必须与字段数据类型.格式.有效范围相吻合     参照完整性:不能引用不存在的值     自定义完整性:根据特定业务领域定义的需求完整性         保证数据完整性的几种常用方法