插入语句组合逻辑
本文关键字:组合 语句 插入 | 更新日期: 2023-09-27 18:00:04
好的,所以我使用C#将信息插入数据库服务器中的表中。它根据添加到其中的一堆if语句创建SQL命令。我在干净地创建语句时遇到了问题。我知道要在SQL Server中组合Insert语句,我们使用:
INSERT INTO myTable
SELECT 'value1', 'value2'
UNION ALL
SELECT 'value3', 'value4'
UNION ALL
SELECT
etc
我的问题是对它们进行排序,以便无论通过哪个if语句,该语句都能工作。例如,
function()
string sqltext = "INSERT INTO myTable"
if(cond1)
{ sqltext=sqltext + "SELECT 'v1', 'v2' UNION ALL" }
else if (cond2) {
sqltext = sqltext + "SELECT 'v3', 'v4' UNION ALL" }
在这种情况下,如果任意一个条件本身返回,则该语句将不起作用,因为该语句将以UNIONALL结尾。我希望这是有道理的。想法?
列出所选
string sqltext = "INSERT INTO myTable";
List<string> selectList = new List<string>();
和
if(cond1)
{
selectList.Add("SELECT 'v1', 'v2' UNION ALL");
...
最后是
string selectStatement = string.Join(" UNION ALL ", selectList.ToArray());
sqltext = sqltext + " " + selectStatement;
在生成"UNION ALL"后从sqltext中删除它。
if(sqltext .Trim().EndsWith("UNION ALL")) {
sqltext = sqltext.Remove(s.LastIndexOf("UNION ALL"));
}
此外,作为附带说明,我建议使用StingBuilder
,而不是使用+
进行字符串连接。