我有下面的SQL查询,它增加了一个约束。MindestensEinKontakt_CHECK
列表 KundenKontaktDaten
. 该约束条件确保至少有一个属性为 Twitter_Id
, Google_Id
, Facebook_Id
, Skype_Id
和 Telefonnummer
不是空的。
ALTER TABLE KundenKontaktDaten
ADD CONSTRAINT MindestensEinKontakt_CHECK
CHECK (Twitter_Id IS NOT NULL OR Google_Id IS NOT NULL OR
Facebook_Id IS NOT NULL OR Skype_Id IS NOT NULL OR
Telefonnummer IS NOT NULL);
我想避免多个 "OR",把查询写得更简洁。有谁知道有什么方法可以做到这一点?
coalesce
返回第一个非null
争论,或 null
如果他们都 null
s. 你可以利用它在你的 alter table
声明:
ALTER TABLE KundenKontaktDaten
ADD CONSTRAINT MindestensEinKontakt_CHECK
CHECK (COALESCE(Twitter_Id, Google_Id, Facebook_Id, Skype_Id, Telefonnummer) IS NOT NULL);