1

SQL テーブルに4 つのレコードがあり、SQL 選択ステートメントを実行して特定の基準に基づいてレコードを選択していますが、レコードを選択していません。誰か助けてくれませんか?

これが私のSELECTステートメントです:

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

NullforJob_Codeを持つ1レコードと . を持つレコードが 3 つありRます。

それに基づいて、NULL で 3 つのレコードを Job_Codeピックアップする必要がありますが、0 レコードが返されます。

4

3 に答える 3

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ではどちらの形式も使用できると思います。

于 2012-07-26T16:14:50.100 に答える
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 に答える
0

試す、

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