数据库有表
A(A1,A2)
1,1
2,2
3,3
4,4
.....B(B1,B2,B3)   注意 B3类型我用的是Text类型
1,11,aa
1,11,bb
2,22,cc
2,22,dd
....我现在要得到 A1=B1 的这样的结果集:第1列为A1;第2列为B2
1,11
2,22
3,33
......我用这样的语句:  select a.A1,b.B2 from A a left join B b on a.A1=b.B1
得到的是:
1,11
1,11
2,22
2,22
3,33
3,33
......
就是因为B3产生了重复,我要把重复弄掉,我用distinct的话Text类型又不行。

解决方案 »

  1.   

    貌似text不能使用distinct。做一个强制转换,
    cast(b3 as varchar(100))
      

  2.   

    select distinct a.A1,b.B2 from A a left join B b on a.A1=b.B1 不可以吗
      

  3.   

    B3如果不超過8000
    轉成varchar(8000)然後過濾
      

  4.   


    说错说错 B2 是 Text类型
      

  5.   

    除了穿成 varchar 就没别的 方法了吗?如果我的 Test类型 字段里有 回车 的话, 转后回车还在的吧???
      

  6.   

    select a.A1,b.B2 from A a left join (select distinct c.B1,c.B2 from B c) b on a.A1=b.B1这样写可以
      

  7.   

    这个建议很好,不建议用text类型
      

  8.   


    我喜欢 apple 的思路