我的SQL表中有 4条记录,我正在做一个SQL select语句来根据某个条件选择记录,但我没有选择任何记录。有人可以帮忙吗?
这是我的SELECT语句:
string Sql = "";
Sql = @"SELECT * FROM " + _dtlName + "
WHERE Shipper_No = '" + sidNo + "'
AND Job_Code != '" + "R" + "'";
我有3条记录,Null
和Job_Code
记录的1
记录为R
。
基于此,我应该使用NULL Job_Code
拾取 3条记录,但返回0条记录。
答案 0 :(得分:3)
我怀疑问题是任何非null值和null值之间的比较都不会返回true或false值,而是null。所以你的查询应该是:
string sql = "SELECT * FROM " + _dtlName + " WHERE Shipper_No = @ShipperNo " +
"AND (Job_Code IS NULL OR Job_Code != 'R')";
(请注意,我已经为Shipper_No
提取了一个参数 - 您不应该像这样直接在SQL中包含值。显然,您需要在SQL命令中设置参数值。)
另请注意,<>
在SQL中更常见,表示“不等于”,但我相信T-SQL允许任何一种形式。
答案 1 :(得分:0)
尝试,
Sql = @"SELECT * FROM " + _dtlName + " WHERE Shipper_No = '" + sidNo + "' AND Job_Code NOT IN ('R')";
答案 2 :(得分:0)
我认为您的查询应该更像是这样,因为您要选择NULL
值。
string Sql = String.Format("SELECT * " +
"FROM {0} " +
"WHERE Shipper_No = {1} AND " +
" Job_Code IS NULL",
_dtlName, sidNo)