Sql 使用此代码(将始终进行表格扫描)进行扫描。这与搜索参数有关(你可以用谷歌搜索)。例如:
如果表xTable的索引位于列xColumn上,则:Sql 使用此代码(将始终进行表格扫描)进行扫描。这与搜索参数有关(你可以用谷歌搜索)。例如:,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,如果表xTable的索引位于列xColumn上,则: select colA, colB from xTable where xColumn/2 >= 5 将永远不会使用该索引,但这可能会: select colA, colB from xTable where xColumn >=10 所以你可能需要这样的东西: WHERE a.point < Otherfunc(@param1, @param2 ) 其中a.point
select colA, colB from xTable where xColumn/2 >= 5
将永远不会使用该索引,但这可能会:
select colA, colB from xTable where xColumn >=10
所以你可能需要这样的东西:
WHERE a.point < Otherfunc(@param1, @param2 )
其中a.point
不幸的是,这对我不起作用。我需要得到整行以及计算值,如果它在范围内,不幸的是,这对我不起作用。如果在范围内,我需要得到整行以及计算值
SELECT i FROM dbo.ListFloats('1.5, 3.0, 2.45, 1.9');
RETURN (SELECT (@param1 + @param2 / @param2));
DECLARE
@Param1Array VARCHAR(MAX) = '1.5, 3.0, 2.45, 1.9',
@Param2 FLOAT = 2.0;
WITH x AS
(
SELECT t.point, x.i, fValue = ((x.i + t.point)/t.point)
FROM dbo.[table] AS t
CROSS JOIN dbo.ListFloats(@Param1Array) AS x
)
SELECT point, i, fValue FROM x
--WHERE fValue < @Param2
;
;WITH x AS
(
SELECT *, dbo.func(@param1, a.point) as fValue
FROM dbo.table AS a
)
SELECT * FROM x
WHERE fValue < @param2;
select colA, colB from xTable where xColumn/2 >= 5
select colA, colB from xTable where xColumn >=10
WHERE a.point < Otherfunc(@param1, @param2 )