SQL:如何通过标题或索引(WHERE)列(SUM)?
SQL: How to (WHERE) column (SUM) by caption or index?
如何创建一个条件 (WHERE),然后是一个包含如下函数的列标题或索引:
SELECT COLUMN_1 AS [COLUMN_1_Val],
COLUMN_2 AS [COLUMN_2_Val],
SUM(A+B-C-D)*E*F/G -SUM(H-I)*K/L AS [My_Complicated_Function],
COLUMN_3 AS [COLUMN_3_Val]
WHERE [My_Complicated_Function]>0
如何在 WHERE 子句中调用我的函数列,甚至通过其索引调用 (WHERE columnindex(2)>0)
比方说,你有一个函数 func_Sum 如下,
create function func_Sum
(
@Num int
)
returns int
as
begin
return(select @Num+@Num)
end
现在你可以像这样在 where 子句中使用这个函数了,
SELECT 1 AS [COLUMN_1_Val],
2 AS [COLUMN_2_Val],
TEST.dbo.func_Sum(5) AS [my_func],
5 AS [COLUMN_3_Val]
WHERE TEST.dbo.func_Sum(5) >0
只需将您的第一部分放在子查询中
SELECT * FROM
(
SELECT COLUMN_1 AS [COLUMN_1_Val],
COLUMN_2 AS [COLUMN_2_Val],
SUM(A+B-C-D)*E*F/G -SUM(H-I)*K/L AS [My_Complicated_Function],
COLUMN_3 AS [COLUMN_3_Val]
FROM ...
)
WHERE [My_Complicated_Function]>0
如何创建一个条件 (WHERE),然后是一个包含如下函数的列标题或索引:
SELECT COLUMN_1 AS [COLUMN_1_Val],
COLUMN_2 AS [COLUMN_2_Val],
SUM(A+B-C-D)*E*F/G -SUM(H-I)*K/L AS [My_Complicated_Function],
COLUMN_3 AS [COLUMN_3_Val]
WHERE [My_Complicated_Function]>0
如何在 WHERE 子句中调用我的函数列,甚至通过其索引调用 (WHERE columnindex(2)>0)
比方说,你有一个函数 func_Sum 如下,
create function func_Sum
(
@Num int
)
returns int
as
begin
return(select @Num+@Num)
end
现在你可以像这样在 where 子句中使用这个函数了,
SELECT 1 AS [COLUMN_1_Val],
2 AS [COLUMN_2_Val],
TEST.dbo.func_Sum(5) AS [my_func],
5 AS [COLUMN_3_Val]
WHERE TEST.dbo.func_Sum(5) >0
只需将您的第一部分放在子查询中
SELECT * FROM
(
SELECT COLUMN_1 AS [COLUMN_1_Val],
COLUMN_2 AS [COLUMN_2_Val],
SUM(A+B-C-D)*E*F/G -SUM(H-I)*K/L AS [My_Complicated_Function],
COLUMN_3 AS [COLUMN_3_Val]
FROM ...
)
WHERE [My_Complicated_Function]>0