none
SQLserver2008 int列和查询的小问题 RRS feed

  • 问题

  • 在SQL server2008的数据表中 有一int列,列名是isDelete ,该列的值有0和1;

    在查询的时候where条件 isDelete='' 会将所有值为零的都查出来,不知道是为什么?是不是SQL的Debug?

    2014年11月27日 7:07

答案

  • 您好,
    因為資料型態不同時,SQL會試著將它轉成跟欄位相同的資料型態,'' 轉成 int 是 0,所以就會找出 0 的資料!

    SELECT CAST('' AS INT); -- 0

    所以查詢時,最好使用跟欄位相同的資料型別。

    另外,查看它的執行計畫,就可以知道SQL做了什麼哦!


    亂馬客blog: http://www.dotblogs.com.tw/rainmaker/

    • 已标记为答案 微MSDN客 2014年11月30日 16:36
    2014年11月27日 9:26

全部回复