持久列公式中的嵌套逻辑

时间:2012-06-13 10:49:43

标签: sql sql-server sql-server-2008 nested persisted-column

我是新手,并且在持久列中使用公式语法时遇到了问题。

A - 我需要大小写(CustomerAccountID IS NULL和MissCustNameMatched = 0)或者errLicensingProgMissing = 1或者errLicensingSubMissing = 1然后(1)else(0)结束

这将无法正确验证。

B - 或者我可以这样做*

案例

  • 当[MissCustName]为真时
    • 当[CustomerAccountName]为空时
      • (1)
    • else
      • (0)
  • else
    • (0)
  • 端*

1 个答案:

答案 0 :(得分:1)

您的两个案例在列名称上不匹配,但在持久字段声明后显示如何使用CASE语句完成此操作。

CREATE TABLE dbo.Test (
  CustomerAccountID INTEGER
  , MissCustNameMatched INTEGER
  , errLicensingProgMissing INTEGER
  , errLicensingSubMissing INTEGER
  , persistedField AS 
      CASE MissCustNameMatched WHEN 1 
      THEN 
        CASE CustomerAccountID WHEN 1 
        THEN 1 
        ELSE 0 
        END 
      ELSE 0 
      END PERSISTED
)