1

我的 SQL 表中有4 条记录,我正在执行 SQL 选择语句来根据特定条件选择记录,但我没有选择任何记录。有人可以帮忙吗?

这是我的 SELECT 语句:

string Sql = "";  
Sql = @"SELECT * FROM " + _dtlName + " 
        WHERE Shipper_No = '" + sidNo + "' 
        AND Job_Code != '" + "R" + "'";  

我有 3 条记录有一个NullforJob_Code和一个1记录有一个R.

基于此,我应该使用 NULL 获取 3 条记录, Job_Code但它返回 0 条记录

4

3 回答 3

3

我怀疑问题是任何非空值和空值之间的比较不会返回真或假值,而是空值。所以你的查询应该是:

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 允许任何一种形式。

于 2012-07-26T16:14:50.100 回答
0

尝试,

Sql = @"SELECT * FROM " + _dtlName + " WHERE Shipper_No = '" + sidNo + "' AND Job_Code NOT IN ('R')";
于 2012-07-26T16:16:56.097 回答
0

我认为您的查询应该更像这样,因为您要选择NULL值。

string Sql = String.Format("SELECT * " + 
                           "FROM {0} " +
                           "WHERE Shipper_No = {1} AND " +
                           "      Job_Code IS NULL",
                            _dtlName, sidNo)
于 2012-07-26T16:31:22.907 回答