SqlCommand - Select ISNULL

本文关键字:ISNULL Select SqlCommand | 更新日期: 2023-09-27 18:30:26

您好,我正在尝试select * data但是对于名为payments的列,如果为NULL,我需要插入设置值0

我尝试这样做:

string sqlcom = "SELECT (ISNULL(payments,0)) * FROM zajezd WHERE id >= '" + txt_od.Text + "'AND id <='" + txt_do.Text + "' AND year='" + klientClass.Rocnik() + "'";

但我仍然收到异常bad syntax near FROM

有人能帮我解决这个问题吗?

提前非常感谢

SqlCommand - Select ISNULL

,放在*之前。试试这个

string sqlcom = "SELECT (ISNULL(payments,0)), * FROM zajezd WHERE id >= '" + txt_od.Text + "'AND id <='" + txt_do.Text + "' AND year='" + klientClass.Rocnik() + "'";

但我也建议您不要像这样传递参数。使用Parameterized query以避免 sql 注入。

您需要

逗号或清除*

SELECT (ISNULL(payments,0)), * FROM

SELECT (ISNULL(payments,0)) FROM

只是为了添加表扬的总和(感谢Liath),您不应该使用*。而是指定您真正需要的列。

还要删除外部括号,因为它们并不是真正需要的。

我还要补充一点,您应该为该列使用 allias。

所以它会是:

SELECT ISNULL(payments,0) AS payments, Col1, Col2,..., Coln FROM...

或者只是普通的:

SELECT ISNULL(payments,0) AS payments FROM...

(ISNULL(payments,0))
*
之间添加逗号

要么删除*,要么在(ISNULL(payments,0))*之间加上逗号

试试这个

string sqlcom = "SELECT ISNULL(payments,0), * FROM zajezd WHERE id >= '" + txt_od.Text + "'AND id <='" + txt_do.Text + "' AND year='" + klientClass.Rocnik() + "'";

您的WHERE条款有点模棱两可。 <= txt_do.Text AND >= txt_od.Text

这不会过滤掉任何东西