7

というテーブルがあるとします。

従業員

ID number, name varchar(24 char), address varchar2(100 char), alternateAddress(100 char), sex varchar2(10 char)

ここで、 address と alternateAddress の両方を null にできないように制約を設定したいと思います。つまり、次のようなケースが考えられます。

  • address が null で、alternateAddress が null ではない
  • alternateAddress が null で、住所が null ではない
  • alternateAddress は null ではなく、住所も null ではありません

しかし、alternateAddress と address の両方が null で挿入された Employee テーブルのレコードが発生することはありません

4

4 に答える 4

8

次のようにテーブルに制約を作成します。

ALTER TABLE [dbo].[Employee]  WITH CHECK ADD  CONSTRAINT [CK_OneAddress] CHECK  ((NOT [address] IS NULL) OR (NOT [alternateAddress] IS NULL))
GO

ALTER TABLE [dbo].[Employee] CHECK CONSTRAINT [CK_OneAddress]
GO
于 2013-10-03T09:45:19.207 に答える
0

使用できませんか:

IF(COALESCE(address, alternateAddress) IS NOT NULL)

また

WHERE (COALESCE(address, alternateAddress) IS NOT NULL)

それともフォームが悪いのでしょうか?

于 2018-07-24T22:13:14.627 に答える