SQL函数大小写金额转换 密码加密

//SQL函数大小写金额转换

ALTER Function  AmountToWord2 (@dblAmount DECIMAL(18,2))
RETURNS VARCHAR(100)
AS
BEGIN
 DECLARE @x varchar(100) ,@y varchar(100)
 DECLARE @temp varchar(100),@zimu varchar(100),@letter varchar(100),@upcase varchar(100)
 DECLARE @i int
    SET @temp = CONVERT(VARCHAR(100),@dblAmount)
    SET @zimu = '.sbqwsbqysbqwsbq'
    SET @letter = '0123456789sbqwy.jzf'
    SET @upcase = '零壹贰叁肆伍陆柒捌玖拾佰仟万亿圆角整分'
    SET  @x = @temp
    SET  @y = ''
   
    SET @i=1
    WHILE @i<= LEN(@x)-3
    BEGIN
  SET @y = @y + SUBSTRING(@x, @i, 1) + SUBSTRING(@zimu, LEN(@x) - 2 - @i, 1)
  SET @i=@i+1
    END
    If (Right(@x, 3) = '.00')
    BEGIN
       SET  @y = @y + 'z'
    END
    ELSE
    BEGIN
  SET  @y = @y + Left(Right(@x, 2), 1) + 'j' + Right(@x, 1) + 'f'
    End
   
    SET  @y = Replace(@y, '0q', '0')
    SET  @y = Replace(@y, '0b', '0')
    SET  @y = Replace(@y, '0s', '0')
    SET  @y = Replace(@y, '0j', '0')
    SET  @y = Replace(@y, '0f', '整')
   
    WHILE @y<> REPLACE(@y,'00','0')
    BEGIN
  SET @y=REPLACE(@y,'00','0')
    END
   
    SET  @y = Replace(@y, '0y', 'y')
    SET  @y = Replace(@y, '0w', 'w')
   
    IF (Len(@x) = 5 And Left(@y, 1) = '1')
    BEGIN
  SET @y=Right(@y, Len(@y) - 1)
    END
    ELSE
    BEGIN
  SET @y=@y
    END
    IF(Len(@x) = 4)
    BEGIN
  SET @y=Replace(@y, '0.', '')
    END
    ELSE
    BEGIN
  SET @y=Replace(@y, '0.', '.')
    END
   
    SET @i=1
    WHILE @i <= 19
    BEGIN
        SET  @y = Replace(@y, SUBSTRING(@letter, @i, 1), SUBSTRING(@upcase, @i, 1))
        SET @i=@i+1
    END
    RETURN @y
       
End

 

// 密码加密

UPPER(right(sys.fn_VarBinToHexStr(hashbytes('MD5',@PWD)),32))

posted @ 2013-12-06 13:21  简单就好。。。  阅读(473)  评论(0编辑  收藏  举报