如果需要使用SQL

时间:2018-08-24 13:09:13

标签: sql required

如果没有提供指定的列,我需要能够限制插入到表中。

这里是要注意的问题,还有另一列依赖于该列,当提供该列时,应强制执行所需的约束。

我已经查看了CHECK语句中的CREATE TABLE约束,但是我不知道如何执行IF THEN语句来检查fieldA,然后在fieldB上强制执行。

这两个列都是可为空的,在某些情况下也不是必需的,但是当提供fieldA时,我想限制数据库仅允许fieldB的非空值。

因此,从字面上的示例来看,这是我的名为Person的表-它具有以下列:

PersonID INT IDENTITY
Name VARCHAR(50) NULL
Age INT NULL 
DateOfBirth VARCHAR(20) NULL

现在,如果尝试将记录插入提供了Person(fieldA)的Age中,我想确保也提供了DateOfBirth(fieldB)。

这种验证是通过应用程序完成的,但我们也希望在表上进行验证。

1 个答案:

答案 0 :(得分:3)

您需要SELECT DATEPART(YEAR,Timestamp) AS Year, DATEPART(MONTH,Timestamp) AS Month, SUM (CAST (Pass AS TINYINT)) AS Passes, COUNT(*) as Total, CAST (SUM (Pass) AS Money) / COUNT(*) AS Percentage FROM table GROUP BY DATEPART(YEAR,Timestamp), DATEPART(MONTH,Timestamp) ORDER BY DATEPART(YEAR,Timestamp), DATEPART(MONTH,Timestamp) 约束:

check

注意:

  • 请勿将日期存储为STRING。哇。我把它大写了。
  • 保管年龄是个坏主意。它往往会经常更改。