【问题标题】:Formatting data for display in SQL query [closed]格式化数据以在 SQL 查询中显示 [关闭]
【发布时间】:2014-07-11 20:36:44
【问题描述】:

在什么情况下适合在 SQL 查询或视图中对值进行表示格式,以便可以在应用程序中直接向用户显示这些值?

背景: 在转换一些用旧版 Microsoft Access 数据库编写的查询的过程中,我遇到了大量的“显示格式”,即存在的嵌入式 VBA/SQL 仅用于准备将结果直接显示在表单上或报告。从纯粹的编程角度来看,这对我来说似乎是非常错误的,但我对 SQL 不够熟悉,不知道这是否可以接受。

这是我现在在屏幕上打开的查询的示例...

Left(Salespersons.Salesperson,1) & ". " & imTextAfterSpace(Salespersons.Salesperson)

这是取一个全名并将其转换为:'Joe Smith' ==> 'J.史密斯'

例如,在 C# 应用程序中,编写这样的代码是不好的做法:

var theTime = DateTime.Now.ToString()

...稍后

someLabel.Text = theTime;

因为原始对象类型(在这种情况下为DateTime)的丰富性/语义一旦变成字符串就会丢失。

【问题讨论】:

  • 这个问题没有一个非常客观和完整的答案。
  • 嗯,这看起来像 VBA,而不是 SQL。这将使这是一个非常不同的问题。
  • 它被标记为两者是因为在 MS Access 中,人们在 SQL 查询的中间编写 VBA。

标签: c# sql vba


【解决方案1】:

当你说这是一个坏主意时你是对的 - 它只会使 SQL 代码库非常难以维护并且容易出错。

在理想情况下,任何格式化都会发生在应用程序的中间层或 ui 层中。

什么时候合适?这绝不是一个绝对的列表,但我能很快想到的几个案例是:

  • -当您无法控制 UI 层时。
  • -当您必须与旧版应用程序集成时

【讨论】:

  • 谢谢。我认为在这种情况下,不幸的是,您的两种情况都适用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多