这个问题已经在这里有了答案:

我有一个相同的查询,但需要根据哪个参数进行一些更改。 我怎样才能做到这一点?

就像是

CASE WHEN @LocalDetailLevel = 'master' THEN 
BEGIN
...
END
CASE WHEN @LocalDetailLevel = 'size' THEN 
BEGIN
...
END
CASE WHEN @LocalDetailLevel = 'color'
BEGIN
...
END

然后在每个begin / end语句中是一个完整的查询,其中包含select和from以及所有内容。 那是正确的方法吗? 还是我必须使用if语句? 如果是这样,其语法是什么?

此外,有人知道sql查询将对此进行优化吗? 是否仅根据参数/查询之一进行优化?

#1楼 票数:0

CASE是一个表达式 ,因此不用于控制逻辑流。

CASE可以在允许有效表达式的任何语句或子句中使用。 例如,您可以在SELECT,UPDATE,DELETE和SET等语句以及select_list,IN,WHERE,ORDER BY和HAVING等子句中使用CASE

对于您的问题,您可以使用IF

语法非常相似...

IF @LocalDetailLevel = 'master' 
BEGIN
...
END

IF @LocalDetailLevel = 'size'
BEGIN
...
END

  ask by nathan translate from so

未解决问题?本站智能推荐:

1回复

SQL查询花费大量时间进行参数检查[重复]

这个问题已经在这里有了答案: OPTION(RECOMPILE)总是更快; 为什么? 5个答案 我有一个基于参数检查的SQL查询,这会花费很长时间。 它本身的查询是用于搜索屏幕的存储过程的一部分。 基本上,您会在表格中填写很多文本/组合框以供搜索。 我有多个选择组合
2回复

“in”子句中参数过多的SQL查询错误[重复]

这个问题已经在这里有了答案: WHERE col IN(…)条件的限制 7个答案 我在下面有以下查询: 和我有参数高达@parameter1390 。 使用此SQL查询报告的C#应用​​程序 已达到表情服务限制。 请在查询中查找可能复杂的表达式,并尝试简化它们。
2回复

SQL-查询作为参数

我有代码: 该请求返回 在“ stn”列中,我要查询而不是查询。 怎么做 ? 请帮忙。
1回复

ADO重复SQL参数

我有一个查询,该查询使用具有相同参数的子查询,因此看起来像这样: 现实生活中的子查询比示例中的子查询没有意义。 这里的问题是,如果我重复strWhere ,那么是否有一种方法可以使参数对生成的strSQL = strSelect & strWhere语句strSQL = strS
2回复

从SQL查询重复

我有一个从多个连接中检索的数据集。 我在我的语句中使用了SELECT DISTINCT,但我仍然在结果集中看到重复项。 这是代码: 以下是重复行的示例: 两者之间的差异似乎是输入的日期。 也许选择Row_Number()然后删除更晚的日期可能是一个解决方案
2回复

SQL效率查询[重复]

这个问题已经在这里有了答案: 如何更快地执行SQ​​L“ NOT IN”查询? 3个答案 我想知道执行以下查询的最有效方法。 我有2张桌子: 我想知道所有不在表2中的Table1ID,或者如果它们不在表2中,则它们必须在当前日期之前具有EndDate。 我知道我可以
2回复

没有重复查询的SQL

我有重复的查询。 现在,我需要构建没有重复的查询。 我正在尝试这样做,但是我的查询需要很长时间。 我的重复查询: 我需要上面的反查询。
1回复

SQL查询创建重复的结果

我的任务是生成一份报告,显示产品按时交付给消费者的情况。 从本质上讲,我已经实现了这一点。 但是,正如您将看到的,只有部分数据是准确的。 这是我们的测试案例:我们有一个销售订单号“12312”。 此销售订单已分批发货 5 次(每批 200 件)。 结果显示在我们的 DUE_DTS 表中。 截止日期表