В настоящее время я динамически создаю SQL-запрос, в зависимости от результата другого запроса, который выполняется незадолго до этого.Объединить 2 запроса в 1
первый запрос:
SELECT col1, col2, col3, col4, col5, col6
FROM tab1
второй динамически построен запрос:
string query = "Update tab2 SET";
if (!Row.col1_IsNull)
{
query = query + " anotherCol1 = " + "'" + Row.col1 + "'" + ", ";
}
if (!Row.col2_IsNull)
{
query = query + " anotherCol2 = " + "'" + Row.col2 + "'" + ", ";
}
else
{
query = query + " comment = " + "'" + "some text..." + "'" + ", ";
}
query = query + " WHERE (";
if (!Row.col3_IsNull)
{
query = query + " anotherCol3 " + Row.col4 + "'" + Row.col5 + "' AND";
}
if (!Row.col6_IsNull)
{
if (Row.col6 == "empty")
{
query = query + " col6 is null AND";
}
else if (Row.col6 == "not empty")
{
query = query + " col6 is not null AND";
}
}
//[...]
Теперь я думал, было возможно ли объединить оба запроса в один запрос.
Есть ли что-то вроде if-утверждения, которое я могу использовать?
Update:
Возможный окончательный запрос может выглядеть следующим образом:
Update tab2 set
anotherCol1 = 'abc',
anotherCol2 = 'def',
WHERE
(col3 = 'test')
Вы можете добавить окончательный запрос на обновление? –
Это то, что я называю кодом спагетти. Удалите все и станьте от попрошайничества с ясным представлением о том, чего вы хотите. Использовать параметры не добавлять вручную значения в запрос. ИСПОЛЬЗОВАНИЕ stringBuilder также является хорошей идеей, как сказал AntDc. – mybirthname
Если вы должны создать такой запрос, пожалуйста, используйте StringBuilder – AntDC