诸如min()或max()之类的sql函数会破坏记录完整性吗

诸如min()或max()之类的sql函数会破坏记录完整性吗,sql,record,integrity,Sql,Record,Integrity,诸如Min()或Max()之类的函数是否可能破坏记录的完整性?以我最近编写的查询为例: 按帐户、电话从import1组中选择account、MIN(电话)、MIN(chargeid)、MIN(locationid) 我是否有可能无意中将字段数据混合到新记录中?如果我把一分钟改成一个最大值呢?如果我选择破坏记录完整性,是否可以 谢谢, Donovan您实际上并没有更改该查询中的数据,您只是选择或查看它 除非您执行更新、插入、删除或调用存储过程,否则您不会更改数据。您实际上不是在更改该查询中的数据,

诸如Min()或Max()之类的函数是否可能破坏记录的完整性?以我最近编写的查询为例:

按帐户、电话从import1组中选择account、MIN(电话)、MIN(chargeid)、MIN(locationid)

我是否有可能无意中将字段数据混合到新记录中?如果我把一分钟改成一个最大值呢?如果我选择破坏记录完整性,是否可以

谢谢,
Donovan

您实际上并没有更改该查询中的数据,您只是选择或查看它


除非您执行更新、插入、删除或调用存储过程,否则您不会更改数据。

您实际上不是在更改该查询中的数据,而是在选择或查看它


除非您执行更新、插入、删除或调用存储的进程,否则您不会更改数据。

我不确定破坏记录完整性是什么意思,但调用MIN或MAX函数没有什么错。这是一种非常常见的查询

您不应该假设结果集中一行中的所有值都来自原始表中的同一行。这些值可以来自不同的行。例如,如果表中的数据如下所示:

account phone chargeid locationid 123 456 10 30 123 456 40 20
我不确定破坏记录完整性是什么意思,但调用MIN或MAX函数并没有错。这是一种非常常见的查询

您不应该假设结果集中一行中的所有值都来自原始表中的同一行。这些值可以来自不同的行。例如,如果表中的数据如下所示:

account phone chargeid locationid 123 456 10 30 123 456 40 20
我相信他的问题是,如果存在以下数据

Account Phone       ChargeId LocationId
1       111-1111    6         8
2       111-1111    7         7
2       111-1111    8         6
它是否会返回2111-1111,7,6(chargeId(2)中的7和LocationId(3)中的6)


如果这就是你要问的,那么是的。这会毁了你的结果。

我相信他的问题是,如果存在以下数据

Account Phone       ChargeId LocationId
1       111-1111    6         8
2       111-1111    7         7
2       111-1111    8         6
它是否会返回2111-1111,7,6(chargeId(2)中的7和LocationId(3)中的6)


如果这就是你要问的,那么是的。这会毁掉你的结果。

没错,但在这种情况下,选择将变成一个全新的数据集。使用VisualFox时,您可以将select语句转换为一个全新的表,这就是我关注的原因。没错,但在本例中,选择将转换为一个全新的数据集。使用VisualFox时,您可以将select语句转换为一个全新的表,这就是我关心的原因。我想确保我没有将多行字段与该选择混合在一起。我正在基于该语句创建一个新表,我想确保它是从您右侧在Min(电话)上创建的数据的准确表示。它过去不是分组的一部分,当我包含它时,我没有删除Min。@Donovan:您可能在混合多行中的字段。请参阅我的更新答案,其中我给出了一个例子。我想确保我没有将多行字段与该选择混合。我正在基于该语句创建一个新表,我想确保它是从您右侧在Min(电话)上创建的数据的准确表示。它过去不是分组的一部分,当我包含它时,我没有删除Min。@Donovan:您可能在混合多行中的字段。请参阅我的更新答案,其中我给出了一个示例。这就是为什么我尝试使用使用ROW_NUMBER()建立的主键(来自您之前的问题)。您是否能够将数据推送到指定了标识列的新表中?crud。这就是我害怕的。是的。如果需要,我可以。我可以临时修改表,将行号作为键。我无法将其包含在查询中,但在运行select语句之前,我可以将表设置为具有唯一键的点。这就是为什么我尝试使用使用ROW_NUMBER()建立的主键(来自上一个问题)。您是否能够将数据推送到指定了标识列的新表中?crud。这就是我害怕的。是的。如果需要,我可以。我可以临时修改表,将行号作为键。我无法将其包含在查询中,但我可以在运行select语句之前将表设置为具有唯一键的位置。