关于微调查询的sql问题
我有一个返回多列的存储过程。像可乐可乐可乐。。。。科尔关于微调查询的sql问题,sql,Sql,我有一个返回多列的存储过程。像可乐可乐可乐。。。。科尔 我是否可以编写另一个查询来获得相同的列,但如果colC/colB,则应该可以。我可能建议添加一个WHERE子句,如下所示: WHERE (colC * 10) < ColB INSERT INTO #myTempTable EXEC myProcedure SELECT * FROM #myTempTable WHERE (colC * 10) < colB 这样你就不用做百分比之类的事情了 您也可以在代码中过滤结果 顺便
我是否可以编写另一个查询来获得相同的列,但如果colC/colB,则应该可以。我可能建议添加一个WHERE子句,如下所示:
WHERE (colC * 10) < ColB
INSERT INTO #myTempTable EXEC myProcedure
SELECT * FROM #myTempTable WHERE (colC * 10) < colB
这样你就不用做百分比之类的事情了
您也可以在代码中过滤结果
顺便说一句。。。这就是我如何转换colC/ColB<10%:
C/B < 10%
C/B < .1 (convert percentage to decimal)
C < .1B (multiply both sides by B)
10C < B (multiply both sides by 10)
您甚至可以编写新的存储过程,以接收要返回的百分比量的变量。where子句将是where colC*@percentage
WHERE (colC * 10) < ColB
INSERT INTO #myTempTable EXEC myProcedure
SELECT * FROM #myTempTable WHERE (colC * 10) < colB
这样你就不用做百分比之类的事情了
您也可以在代码中过滤结果
顺便说一句。。。这就是我如何转换colC/ColB<10%:
C/B < 10%
C/B < .1 (convert percentage to decimal)
C < .1B (multiply both sides by B)
10C < B (multiply both sides by 10)
您甚至可以编写新的存储过程,以接收要返回的百分比量的变量。where子句将是where colC*@percentage
SELECT * FROM myProc WHERE (colcC / colB) < .1
2选择您感兴趣的行,如下所示:
WHERE (colC * 10) < ColB
INSERT INTO #myTempTable EXEC myProcedure
SELECT * FROM #myTempTable WHERE (colC * 10) < colB
借用了Narnian的colC*10技巧
祝你好运 我假设这里的问题是无法使用内联SELECT语句获取存储过程的结果;对的换句话说,你想说
SELECT * FROM myProc WHERE (colcC / colB) < .1
2选择您感兴趣的行,如下所示:
WHERE (colC * 10) < ColB
INSERT INTO #myTempTable EXEC myProcedure
SELECT * FROM #myTempTable WHERE (colC * 10) < colB
借用了Narnian的colC*10技巧
祝你好运 您需要使用table variable@或temp table,因为您不能直接从存储过程的结果集中选择:
DECLARE @table TABLE (colA int, colB int, colC int, ...)
INSERT INTO @table
EXEC StoreProcedureName
SELECT * FROM @table WHERE colC * 10 < colB
您需要使用table variable@或temp table,因为您不能直接从存储过程的结果集中选择:
DECLARE @table TABLE (colA int, colB int, colC int, ...)
INSERT INTO @table
EXEC StoreProcedureName
SELECT * FROM @table WHERE colC * 10 < colB
我认为问题在于无法修改存储过程,因此不能将WHERE子句直接应用于结果。Ok。说得好。如果是这样,那么您的解决方案是有效的。如果他能写一个新的存储过程,那么他就可以使用这个解决方案。我非常喜欢colC*10技巧。很好地避免了不同数据类型的问题。我认为问题在于存储过程无法修改,因此不能将WHERE子句直接应用于结果。好的。说得好。如果是这样,那么您的解决方案是有效的。如果他能写一个新的存储过程,那么他就可以使用这个解决方案。我非常喜欢colC*10技巧。很好地避免了不同数据类型的问题。谢谢大家。我用这个检查一下。谢谢大家。我用这个检查一下。