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
有人能帮我解决这个问题吗?
提前非常感谢
把,
放在*
之前。试试这个
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
这不会过滤掉任何东西