我在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
感谢您的帮助
答案 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]
如果你理解为什么会这样,你也明白为什么不应该使用它。我只提供娱乐用途。