我有一个看起来像这样的程序。
CREATE PRODEDURE get_count
@rdr CHAR(3)
AS
SELECT t.cnt FROM (
SELECT COUNT(*) cnt, 'X' rdr FROM table_X
UNION ALL
SELECT COUNT(*) cnt, 'Y' rdr FROM table_Y
UNION ALL
SELECT COUNT(*) cnt , 'Z' rdr FROM table_Z) t
WHERE t.rdr = @rdr
是否可以使用我不知道的 case 语句或其他一些 Sybase 技巧来优化上述过程?所以,当你传入'X'时它使用table_X,当你传入'Y'时使用table_Y等等。优化的唯一动机是因为单独的count()操作需要很多时间,而且每次我做一个电话就停了……