您好我正在尝试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
有人会帮我解决这个问题吗?
非常感谢
答案 0 :(得分:4)
将,
放在*
之前。试试这个
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注入。
答案 1 :(得分:3)
您需要逗号或清除*
。
SELECT (ISNULL(payments,0)), * FROM
或
SELECT (ISNULL(payments,0)) FROM
只是添加奖励的总和(感谢Liath)你不应该使用*
。而是指定您真正需要的列。
同时删除外部括号,因为它们并非真正需要。
我还要补充一点,你应该为该列使用别名。
所以它会是:
SELECT ISNULL(payments,0) AS payments, Col1, Col2,..., Coln FROM...
或只是简单:
SELECT ISNULL(payments,0) AS payments FROM...
答案 2 :(得分:2)
在
(ISNULL(payments,0))和
*
之间添加逗号
答案 3 :(得分:1)
要么删除*
,要么在逗号(ISNULL(payments,0))
和*
之间添加逗号
答案 4 :(得分:1)
试试这个
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
那不会过滤任何东西