|
|
1
3
当速度至关重要时,SQL case语句甚至可能是最快的(我将运行一个测试),但为了可维护性,将普通值返回给表示层(或一些业务层)是最好的选择。 [update]运行了一些快速而肮脏的测试(下面的代码),发现C#代码变体比SQL case变体略快。结论:返回“原始”数据并在表示层对其进行操作既更快又更易于维护。 -爱德华 我检索到196288行,查询如下。
C#变体:
} |
|
|
2
2
我会担心把这种逻辑放在SQL语句中。如果数据库引擎发生变化,会发生什么?您是否必须将每个SQL语句更新为Oracle SQL?当您移动到消息总线、XML文件或web服务调用时,如果存储库本身发生了变化,该怎么办。.. 看起来您正在存储显示信息。在这种情况下,它是数据模型的一部分。让控制器(在典型的 MVC pattern )执行条件逻辑。表示层不需要知道发生了什么,存储库可以很高兴地保存数据。 |
|
|
3
0
有时(有时)它只是有助于避免在表示层中进行额外的编码。 通常,如果数据库和演示文稿都是由一个人开发的,那也没关系。当工作被分担时,问题就开始了。在这种情况下,很明显,您需要一份关于数据库发出什么和ASP接受什么的明确合同。 当然,CSS属于表示层的领域,它应该由ASP解析,而不是用SQL硬编码。 |
|
|
4
0
这是老式的代码,我不相信人们再这样编码了(我们现在使用CSS)
|
|
|
5
0
就SQL性能而言,如果您只返回几行(或根据外观返回一行),则影响很小,因为语句的WHERE部分是在case之前计算的(case仅在与WHERE匹配的行上执行)。 从最佳实践的角度来看,显示信息不应该在SQL中真正确定。也许返回一个主题类型,但肯定不是谨慎的风格信息。 |
|
|
6
0
100%同意重构,将显示决策提交给表示层(或尽可能接近表示层)。
作为一个查询。除非有人知道得更好,当然。 |
|
|
Johnny T · 基于当前值的SQL合并表[重复] 8 月前 |
|
John D · 需要为NULL或NOT NULL的WHERE子句 8 月前 |
|
ojek · 如何对SQL结果进行分组和编号? 9 月前 |
|
|
senek · 如何在PL/SQL中将选择结果(列)放入数组中 9 月前 |
|
|
Sax · 规范化Google表格(第一步) 9 月前 |
|
|
Jatin · 检索卷计数的动态sql抛出错误语法错误[关闭] 9 月前 |
|
|
Andrus · 如何在sql中查找第二个匹配项 9 月前 |