SELECT 
  left(UV_KAISHA.UV_KAISHA_RNM,10) + ' ' + left(UV_TORIHIKISAKI.UV_TORIHIKISAKI_RNM,10)
FROM ...-- 不知道你的那两个字段是什么类型的?

解决方案 »

  1.   


    select left(UV_KAISHA.UV_KAISHA_RNM,10)+' '
    +left(UV_TORIHIKISAKI.UV_TORIHIKISAKI_RNM,10) from ...
    若字段类型不对,再用CONVERT或CAST转换
      

  2.   

    CONVERT(VARCHAR,CONVERT(BINARY(10),left(UV_KAISHA.UV_KAISHA_RNM,10))) + ' ' + CONVERT(VARCHAR,CONVERT(BINARY(10),left(UV_TORIHIKISAKI.UV_TORIHIKISAKI_RNM,10)))
    FROM ...
      

  3.   

    因为是要前是一个字节,而left只能得到前10个字符。
    wzh1215(四脚蛇) 兄的方法我正在试。
      

  4.   

    若是字符串。好象不用那么麻烦,直接用LEFT函数即可
    若需把字段内容前面的空字符去掉,再取前10位,那就
    用LTRIM()函数。
      

  5.   

    wzh1215(四脚蛇) 兄的方法好像也不行。
    痛不欲生中
      

  6.   

    回复人: CrazyFor(太阳下山明朝依旧爬上来) ( ) 信誉:262  2003-08-21 12:58:00  得分:0 
     
     
      1,建自定义函数
    CREATE function getleft(@a Nvarchar(2000),@getLen int)
    returns Nvarchar(2000)
    as
    begin
    declare @i int,@len int,@b Nvarchar(2000)
    set @i=1
    set @b=''
    set @len=0
    while @i<=len(@a) and @len<@getlen
    begin
    if ascii(substring(@a,@i,1))>128
    set @len=@len+1 set @b=left(@a,@i)
    set @len=@len+1
    set @i=@i+1
    end
    return @b
    end
    2,调用:select dbo.getleft('中ac中cce',7)
    ---------
    中ac中c  
     
    也可以通过建立函数来解决这个问题。
      

  7.   

    RTRIM(CONVERT(VARCHAR,CONVERT(CHAR(10),UV_KAISHA.UV_KAISHA_RNM))) + ' ' + CONVERT(VARCHAR,CONVERT(BINARY(10),UV_TORIHIKISAKI.UV_TORIHIKISAKI_RNM))
              AS UV_TOKUISAKI_NAME1,已经通过如下方法解决了该问题。感谢各位的帮助。