CHECK 约束用于限制列中的值的范围

Check中使用Case函数在很多情况下都是非常不错的解决方法。可能有很多人根本就不用Check,那么我建议你在看过下面的例子之后也尝试一下在SQL中使用Check。 
下面我们来举个例子 
公司A,这个公司有个规定,女职员的工资必须高于1000块。如果用Check和Case来表现的话,如下所示

CREATE TABLE casetest
(
id INT IDENTITY PRIMARY KEY,
sex CHAR(3) NOT NULL,
salary INT NULL ,CONSTRAINT check_salary CHECK(CASE WHEN sex='女' THEN
CASE WHEN salary>1000 THEN 1 ELSE 0 END
ELSE 1 END =1)
)---constaraint前面的都好必须有 ---check布尔 0为false,1为true

INSERT dbo.casetest
( sex, salary )
VALUES ( '女', -- sex - char(3)
200 -- salary - int
)
SELECT * FROM dbo.casetest

如果单纯使用Check,如下所示

CONSTRAINT check_salary CHECK
( sex = '2' AND salary > 1000 )

女职员的条件倒是符合了,男职员就无法输入了。

sql 约束Check中使用Case函数的更多相关文章

  1. sql server2005版本中,len函数计算了字符串末尾的空格

    sql server2005版本中,len函数计算了字符串末尾的空格的长度,以下是测试脚本: print @@version declare @v varchar(max) set @v = 'hp, ...

  2. 深入理解SQL Server 2005 中的 COLUMNS_UPDATED函数

    原文:深入理解SQL Server 2005 中的 COLUMNS_UPDATED函数 概述 COLUMNS_UPDATED函数能够出现在INSERT或UPDATE触发器中AS关键字后的任何位置,用来 ...

  3. sql server 2005中的分区函数用法(partition by 字段)

    分组取TOP数据是T-SQL中的常用查询, 如学生信息管理系统中取出每个学科前3名的学生.这种查询在SQL Server 2005之前,写起来很繁琐,需要用到临时表关联查询才能取到.SQL Serve ...

  4. 转-sql中的case when的用法

    Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END ...

  5. SQL中的case when then else end用法

    --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' ...

  6. sql中的case when then else end

    hive中的case when的用法举例 select * from (select id, count(distinct ] in ("Virus","Worm&quo ...

  7. [转]SQL中的case when then else end用法

      Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' EN ...

  8. 转载:SQL中的case when then else end用法

    SQL中的case when then else end用法 来源: http://www.cnblogs.com/prefect/p/5746624.html Case具有两种格式.简单Case函数 ...

  9. oracle中的case when then else end 用法

    Case when 的用法,简单Case函数 简单CASE表达式,使用表达式确定返回值. 语法: CASE search_expression WHEN expression1 THEN result ...

随机推荐

  1. 为input标签绑定事件的几种方式

    为input标签绑定事件的几种方式 1.JavaScript原生态的方式,直接复制下面的代码就会有相应的效果 <!DOCTYPE html><html><head> ...

  2. Java中静态变量与实例变量

    知识回顾 上一篇总结了java中成员变量和局部变量的区别,这一篇将总结静态变量和实例变量的一些特性和区别. 示例代码 package Variable; public class VariableDe ...

  3. linux下的nmap工具能干什么?

    答:可以用来探测远程主机的操作系统类型,使用方法如下: nmap -A <ip address>

  4. EvansClassification

    EvansClassification In his excellent book Domain Driven Design, Eric Evans creates a classification ...

  5. 部署springboot项目时 打包成jar时包中html,js,css文件缺失

    问题 打包出来的jar包里面没有html,js,css文件 解决方案 在pom.xml文件下的build选项中的src/main/resources的目录下 添加配置 <build> &l ...

  6. macOS在使用音视频通话时会降低其他音频声音的解决方法

    在使用QQ进行通话时,背景无法播放音乐(声音过小),并且在QQ for mac中也没有进行调整的设置选项. Solution: printf "p *(char*)(void(*)())Au ...

  7. Latex 仅使用 hyperref 包中 \href 的方法

    参考: How to ask hyperref works only with href Latex 仅使用 hyperref 包中 \href 的方法 在 .tex 文件的开头使用如下方法引用 hy ...

  8. loadrunner中使用web_custom_request函数调用webservice接口

    1.使用的接口地址: http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?op=getWeatherbyCityName 以SOAP ...

  9. python pyqt绘制直方图

    # -*- coding: utf-8 -*- """ In this example we draw two different kinds of histogram. ...

  10. 铁大Facebook轻量化界面NABCD

    界面轻量化: N:满足了用户更快速.更直接.更方便寻求自己所要信息的需求,不被复杂界面以及各种广告所困扰. A:我们将会用Bootstrap工具包开发前端界面,Bootstrap是基于jQuery框架 ...