use*_*816 5 sql sql-server sql-server-2008
尝试创建一个计算列,该列的值将基于其他四列中的值.第1列,第2列,第3列,第4列可以是"是"或"否"计算列中的最终结果,比如称为"进度",应该是这一行:
Progress = CASE
WHEN [Column1] = 'Yes' THEN Value+1
WHEN [Column2] = 'Yes' THEN Value+1
WHEN [Column3] = 'Yes' THEN Value+1
WHEN [Column4] = 'Yes' THEN Value+1
ELSE 0 END
Run Code Online (Sandbox Code Playgroud)
希望这是有道理的,因为上面的语法显然不正确.
听起来这就是你想要的.
Progress =
CASE WHEN [Column1] = 'Yes' THEN 1 ELSE 0 END +
CASE WHEN [Column2] = 'Yes' THEN 1 ELSE 0 END +
CASE WHEN [Column3] = 'Yes' THEN 1 ELSE 0 END +
CASE WHEN [Column4] = 'Yes' THEN 1 ELSE 0 END
Run Code Online (Sandbox Code Playgroud)
这将为每个"是"返回0 + 1.