t3,t4表都各只有一个字段nums,VARCHAR型,t3.nums(varchar 7),t4.nums(varchar 11),要从T4表中挑出t4.NUMS前7位在T3中的nums中的部分,select t4.nums from t4 where left(t4.nums,7)  in (select t3.nums from t3)这个语句哪有问题?

解决方案 »

  1.   

    select t4.nums from t4 inner join (select distinct nums from t3) A 
    on left(t4.nums,7) = A.nums
      

  2.   

    没问题!select t4.nums from t4 inner join (select distinct nums from t3) A 
    on left(t4.nums,7) = A.nums
    这么用也没问题
    不国你可以这么试试》》》
    print left(t4.nums,7)  --替换成变量好点!
      

  3.   

    不行的,我的语句执行但是查不出想要的结果,COUNT是0,虎虎的用法我也试了,不行
      

  4.   

    select t4.nums from t4 where left(t4.nums,7)  
    in (select t3.nums from t3 WHERE t3.nums IS NOT NULL)   /*注意:使用IN(子查询)时,要在子查询中使用IS NOT NULL来排除空值,否则结果可能会因为NULL值而不准确,这是很容易被忽略的问题.*/
      

  5.   

    select t4.nums from t4 inner join (select distinct nums from t3) A 
    on left(ltrim(t4.nums),7) = ltrim(rtrim(A.nums))
    这样呢