![]() |
1
1
我
认为
你只想加入
当然,在select子句中也有“if语句,仅当reason在('d'、'i'、'c')[as]pv.descriptor]中时才选择pv.descriptor”。所以,假设你想要 那个 相反,请尝试以下操作:
|
![]() |
2
2
如果您想在一个查询中使用它,就必须进行连接。使用左边的连接和case语句,可以确保pv.descriptor在某些情况下显示为空。 如果需要控制流,则需要使用T-SQL 如果您关心性能问题,则不应使用计算值进行连接。重新考虑数据库设计。您可能希望为联接创建新的列,并且如果您有多对多关系,可能希望创建中间表。 |
![]() |
3
0
是什么激发了两个查询的组合?加入可能会导致需要一个完全不同的评估计划…根据变量值(或更糟的列)在两个计划之间进行选择!查询优化器做得不好。 如果编写两个查询并使用一个SQL if语句将控制流传递给其中一个查询,那么情况会好得多。 编辑:如果RL中有两行,一行的原因=D,一行的原因=S,查询应该返回什么? |
![]() |
4
0
我会保持简单,以便将来支持您的代码的人能够了解如何维护它(例如,当他们添加另一个原因代码时)。 它可能没有性能好,但更易于维护。 另外,有没有一种方法可以在表中获取这些代码并测试标记,而不是在SQL中硬编码它们? |
![]() |
ybou · 需要帮助从SQL 2005查询中删除过时的=*连接运算符 7 年前 |
![]() |
Robert · 将多个分隔符分隔的字段视为不同的行 8 年前 |
![]() |
hud · 执行存储过程会导致错误 8 年前 |
![]() |
Gonzalo · 如何将存储过程的结果插入到新表中? 9 年前 |