如果是SQL Server中的Statement(何时出现?)

时间:2015-02-18 17:23:21

标签: sql-server

我在SQL中有两个字段:

Improvement Type
25  Daily
25  Weekly
25  Monthly

我想在SQL Server中写一个if语句“

If type = daily than Improvement/365
If type =  weekly than improvement/52
If type = monthly than  improvement/12

感谢您的帮助

2 个答案:

答案 0 :(得分:3)

SELECT CASE [Type] 
   WHEN 'Daily' THEN [Improvement] / 365
   WHEN 'Weekly' THEN [Improvement] / 52
   WHEN 'Monthly' THEN [Improvement] / 12
 END AS CalculatedField
FROM [MyTableNameHere]

答案 1 :(得分:0)

@TimLentine提供的答案是正确的,明显的,适当的,应该使用。这是一种不使用CASE的方法,不可维护,不可靠,可能性能更差,简而言之,任何原因都不应该出现在生产代码中,除非你想要对抗你的同事。 / p>

SELECT 
    [Improvement] / SUBSTRING(0xc2a016d34, LEN([Type]) * 2 % 7, 2)
FROM [MyTableNameHere]

如果你理解为什么会这样,你也明白为什么不应该使用它。我只提供娱乐用途。