A. 使用带有简单 CASE 函数的 SELECT 语句
在 SELECT 语句中,简单 CASE 函数仅检查是否相等,而不进行其它比较。下面的示例使用 CASE 函数更改图书分类显示,以使其更易于理解。
USE pubs
GO
SELECT Category =
CASE type
WHEN 'popular_comp' THEN 'Popular Computing'
WHEN 'mod_cook' THEN 'Modern Cooking'
WHEN 'business' THEN 'Business'
WHEN 'psychology' THEN 'Psychology'
WHEN 'trad_cook' THEN 'Traditional Cooking'
ELSE 'Not yet categorized'
END,
CAST(title AS varchar(25)) AS 'Shortened Title',
price AS Price
FROM titles
WHERE price IS NOT NULL
ORDER BY type, price
COMPUTE AVG(price) BY type
GO
下面是结果集:
Category Shortened Title Price
------------------- ------------------------- --------------------------
Business You Can Combat Computer S 2.99
Business Cooking with Computers: S 11.95
Business The Busy Executive's Data 19.99
Business Straight Talk About Compu 19.99
avg
==========================
13.73
Category Shortened Title Price
------------------- ------------------------- --------------------------
Modern 作者: 阿罗 时间: 2003-12-25 16:10
朱兄就是专业,没得说。佩服中....作者: 阿罗 时间: 2003-12-25 16:13
如果你指的是MS SQL SERVER的联机丛书,那么这个IIF就不是T-SQL的语法,而是MDX的。作者: zhy728 时间: 2003-12-25 16:19
那我这个公式该如何写呀!作者: 阿罗 时间: 2003-12-25 16:37
CASE C WHEN 0 THEN NULL WHEN ELSE ((A + B) / C) * D / 1000) END 作者: zhy728 时间: 2003-12-26 16:22
谢谢各位的帮忙!作者: 小松 时间: 2004-1-16 19:47
可以试一下:
IIf(C=0, ((A + B) / 1) * D / 1000, ((A + B) / C) * D / 1000)