求教: apple_8180(十豆三)解决思路

求教: apple_8180(十豆三)
原帖:
http://community.csdn.net/Expert/topic/5540/5540303.xml?temp=.6190912

答案:
select   fl1,iif(empty(myhz(fl1)),space(50),myhz(fl1))   from   tempa


FUNCTION   MyHZ
PARAMETERS   pcZd
lcString= ' '
FOR   I=1   TO   LEN(ALLTRIM(pcZd))
IF   ISLEADBYTE(SUBSTR(ALLTRIM(pcZd),I,1))  
lcString=lcString+SUBSTR(ALLTRIM(pcZd),I,2)
I=I+1
ENDIF  
ENDFOR
RETURN   lcString
ENDFUNC


问题:select   fl1,iif(empty(myhz(fl1)),space(50),myhz(fl1))   from   tempa
语句中,iif(empty(myhz(fl1)),space(50),myhz(fl1))的值得长度受纪录的第一个值的影响,字段长度如何给定。

------解决方案--------------------
select left(tt,50) from (
select fl1,iif(empty(myhz(fl1)),space(50),myhz(fl1)) as tt from tempa)

------解决方案--------------------
select fl1,myhz(fl1) AS 结果 from tempa

FUNCTION MyHZ
PARAMETERS pcZd
lcString= ' '
FOR I=1 TO LEN(ALLTRIM(pcZd))
IF ISLEADBYTE(SUBSTR(ALLTRIM(pcZd),I,1))
lcString=lcString+SUBSTR(ALLTRIM(pcZd),I,2)
I=I+1
ENDIF
ENDFOR
RETURN PADR(lcString,254,SPACE(1))
ENDFUNC