C# 以编程方式将多个SQL列组合并存储到单个列中

C# 以编程方式将多个SQL列组合并存储到单个列中,c#,sql,ms-access,oledb,C#,Sql,Ms Access,Oledb,我在Access DB中有多个列,我想组合字段A、B、C,并将它们存储在D列中,在它们之间使用逗号分隔符。D=A,B,C 现在我正在使用OLEDB连接,但我对其他方法持开放态度。如何将多个SQL列中的行数据合并并存储到单个列中 INSERT INTO table (d) VALUES (SELECT a + "," + b + "," + c FROM table) 上面有许多假设 上面做了许多假设。假设字符串是简单的,您可以使用update语句: Update table set D=A+'

我在Access DB中有多个列,我想组合字段A、B、C,并将它们存储在D列中,在它们之间使用逗号分隔符。D=A,B,C

现在我正在使用OLEDB连接,但我对其他方法持开放态度。如何将多个SQL列中的行数据合并并存储到单个列中

INSERT INTO table (d) VALUES (SELECT a + "," + b + "," + c FROM table)
上面有许多假设


上面做了许多假设。

假设字符串是简单的,您可以使用update语句:

Update table set D=A+','+B+','+C

然而,这可能不是一个好主意。您可能希望推断出您要执行此操作的“原因”,因为可能有更好的选择。

假设字符串的情况很简单,您可以使用update语句:

Update table set D=A+','+B+','+C

然而,这可能不是一个好主意。您可能想推断您想这样做的“原因”,因为可能有更好的选择。

我质疑您为什么要将这些a、B和C值冗余存储在另一列D中。D可以是一个字段表达式,根据需要连接其他字段值

SELECT A & "," & B & "," & C AS D
FROM YourTable;

如果使用原始方法(将连接的值存储在单独的列D中),则需要确保D在a、B和/或C中的值每次更改时都得到更新。使用SELECT查询方法,D始终保证准确反映a、B和C中的当前值。。。无需额外努力。

我想知道为什么要在另一列D中冗余存储这些A、B和C值。D可以是一个字段表达式,根据需要连接其他字段值

SELECT A & "," & B & "," & C AS D
FROM YourTable;

如果使用原始方法(将连接的值存储在单独的列D中),则需要确保D在a、B和/或C中的值每次更改时都得到更新。使用SELECT查询方法,D始终保证准确反映a、B和C中的当前值。。。无需额外努力。

A、B和C的数据类型是什么?D列是否已经存在?A、B和C的数据类型是什么?D列是否已经存在?我得到的印象是,他希望它们与现有行对齐。我认为这种方法不适用于那个……我得到的印象是,他希望它们与现有行对齐。我不认为这种方法能解决这个问题……我为什么要这么做有点棘手,基本上是因为ESRI定位器样式的限制。我很确定这是TMI,但这在某种程度上扩展了上下文,我认为在这种情况下,最好在需要时使用@HansUp的解决方案来计算字段。如果要将其作为列访问,请在表中创建一个包含计算列的视图。如果创建新列并用计算数据填充它;然后,当其他列被更新时,您就可以打开自己的窗口来查看过时的数据。这是数据库设计中的“一件坏事”。我为什么要这么做有点棘手,基本上是因为ESRI定位器样式的限制。我很确定这是TMI,但这在某种程度上扩展了上下文,我认为在这种情况下,最好在需要时使用@HansUp的解决方案来计算字段。如果要将其作为列访问,请在表中创建一个包含计算列的视图。如果创建新列并用计算数据填充它;然后,当其他列被更新时,您就可以打开自己的窗口来查看过时的数据。这在数据库设计中是“一件坏事”。+1明智的建议。创建一个如此容易“损坏”的数据库很少是问题的正确答案。创建一个如此容易“损坏”的数据库很少是问题的正确答案。