SQL 字符 数字 转换字母

1、将字符中数字转换为中文大写的数字,

注意

100==>一零零   而非==>一百

123==>一二三   而非==>一百二十三

CREATE FUNCTION Fn_NumberConvertChinase(@number NVARCHAR(50))
RETURNS NVARCHAR(20)
AS
BEGIN
DECLARE @res NVARCHAR(20)
DECLARE @char CHAR(1)
SET @res = ‘‘
SET @char = substring(@number,1,1)
SELECT @res = (CASE @char
    WHEN ‘1‘ THEN ‘一‘
    WHEN ‘2‘ THEN ‘二‘
    WHEN ‘3‘ THEN ‘三‘
    WHEN ‘4‘ THEN ‘四‘
    WHEN ‘5‘ THEN ‘五‘
    WHEN ‘6‘ THEN ‘六‘
    WHEN ‘7‘ THEN ‘七‘
    WHEN ‘8‘ THEN ‘八‘
    WHEN ‘9‘ THEN ‘九‘
    WHEN ‘0‘ THEN ‘零‘
    ELSE substring(@number,1,1) END
)
IF(len(@number) > 1)
BEGIN
    SET @res =  @res + dbo.fn_numberconvertchinase(substring(@number,2,len(@number)-1))
END
RETURN @res
END

2、获取字符首字母,并转大写

CREATE FUNCTION Fn_GetPy(@str NVARCHAR(4000))
RETURNS NVARCHAR(4000)
AS
BEGIN
    DECLARE @strlen INT;
    DECLARE @re NVARCHAR(4000);
    --字符中数字转大写
    SELECT @str=dbo.fn_numberconvertchinase(@str);

    DECLARE @t table(chr nchar(1) collate Chinese_PRC_CI_AS,letter nchar(1))
    INSERT INTO @t(chr,letter)
      SELECT ‘吖‘,‘A‘ UNION ALL SELECT ‘八‘,‘B‘ UNION ALL
      SELECT ‘嚓‘,‘C‘ UNION ALL SELECT ‘咑‘,‘D‘ UNION ALL
      SELECT ‘妸‘,‘E‘ UNION ALL SELECT ‘发‘,‘F‘ UNION ALL
      SELECT ‘旮‘,‘G‘ UNION ALL SELECT ‘铪‘,‘H‘ UNION ALL
      SELECT ‘丌‘,‘J‘ UNION ALL SELECT ‘咔‘,‘K‘ UNION ALL
      SELECT ‘垃‘,‘L‘ UNION ALL SELECT ‘嘸‘,‘M‘ UNION ALL
      SELECT ‘拏‘,‘N‘ UNION ALL SELECT ‘噢‘,‘O‘ UNION ALL
      SELECT ‘妑‘,‘P‘ UNION ALL SELECT ‘七‘,‘Q‘ UNION ALL
      SELECT ‘呥‘,‘R‘ UNION ALL SELECT ‘仨‘,‘S‘ UNION ALL
      SELECT ‘他‘,‘T‘ UNION ALL SELECT ‘屲‘,‘W‘ UNION ALL
      SELECT ‘夕‘,‘X‘ UNION ALL SELECT ‘丫‘,‘Y‘ UNION ALL
      SELECT ‘帀‘,‘Z‘;
      SELECT @strlen=len(@str),@re=‘‘;

      WHILE @strlen>0
      BEGIN
        SELECT TOP 1 @re=letter+@re,@strlen=@strlen-1
          FROM @t a WHERE chr<=substring(@str,@strlen,1)
          ORDER BY chr DESC
        IF @@rowcount=0
          SELECT @re=substring(@str,@strlen,1)+@re,@strlen=@strlen-1
      END
  RETURN(UPPER(@re))
END
时间: 2024-10-19 04:05:17

SQL 字符 数字 转换字母的相关文章

字符数字转换 atoi 与 strtol

原文:http://www.cnblogs.com/JefferyZhou/archive/2010/07/01/1769555.html 在很多时候我们都很清楚 atoX 系列函数: atoi , atol , atof新来的一系列函数:  strtol,  strtoul, strtod 通常有如下的关系:1. 对应关系其中: atoi   (把字符串转到整形)    --对应--   strtol  (把字符串转到长整形) atol   (把字符串转到长整形)    --对应--   st

sql 提取数字、字母、汉字

--提取数字 IF OBJECT_ID('DBO.GET_NUMBER2') IS NOT NULL DROP FUNCTION DBO.GET_NUMBER2 GO CREATE FUNCTION DBO.GET_NUMBER2(@S VARCHAR(100)) RETURNS VARCHAR(100) AS BEGIN WHILE PATINDEX('%[^0-9]%',@S) > 0 BEGIN set @s=stuff(@s,patindex('%[^0-9]%',@s),1,'') E

华为上机测试题(Excel表格纵列字母数字转换-java)

PS:这是我刚做的一道题,题目不难,满分60,得分40,大家看看哪里有问题,欢迎提意见,感谢! /* * 题目:Excel表格纵列字母数字转换 * 描述: 在Excel中列的编号为A-Z,AA-AZ,BA-BZ.....CZB.....,请实现一个函数要求满足以下功能,将编号进行修改, * 如A-Z为1-26,然后翻转为两位,AA为27,AB为28.....ZZ为702,然后翻转为3位,AAA=703,AAB=704... 输入的字符串最长只有4. 题目类别: 字符串 难度: 初级 分数: 60

C#字母转换成数字/数字转换成字母 - ASCII码转换

字母转换成数字 byte[] array = new byte[1];   //定义一组数组arrayarray = System.Text.Encoding.ASCII.GetBytes(string); //string转换的字母int asciicode = (short)(array[0]); ASCII码 = Convert.ToString(asciicode); //将转换一的ASCII码转换成string型 数字转换成字母byte[] array = new byte[1];ar

从文件读取包含数字和字母字符串,统计每个字符出现的次数,将次数输出到另外一个文件

1 //2016年重大考研机试题目 2 //从文件读取包含数字和字母字符串,统计每个字符出现的次数 3 //输出格式,字符:次数并输出到另外一个文件 4 //需要在D盘下新建文件text.in 5 #include<stdio.h> 6 #include<stdlib.h> 7 #include<string.h> 8 9 int main() 10 { 11 FILE *fp_read, *fp_write;//读写文件指针 12 int count[36]; //存

Python数字,字符格式转换笔记

好记性不如烂笔头,有一些常用的数字,字符串转换的学习笔记 1. 将二进制数转换为指定格式的字符串形式 先来看一小段代码 >>> a = 0b0100 >>> print a 4 >>> print format(a, '#0b') 0b100 >>> print format(a, '0b') 100 >>> print format(a, '04b') 0100 >>> print format(

字符单链表识别数字,字母,其它字符,并分为三个循环链表的算法c++实现

已知一个单链表中的数据元素含有三类字符(即字母字符,数字字符和其它字符),试编写算法,构造三个循环链表,使每个循环链表中只含有同一类的字符,且利用原表中的结点空间作为这三个表的结点空间. 实现源代码: #include<iostream> #include<stdio.h> #include<string.h> using namespace std; struct node { char ch; node*link; }; //为了方便输出,定义一个输出字符的函数,适

JS 把数字转换成字母

JS 把数字转换成字母 2013-03-12 22:28:11 分类: JavaScript String.fromCharCode(addcount+65) 位运算alert(1<<0) http://blog.chinaunix.net/uid-11898547-id-3517924.html

Java 如何判断一个字符是否是数字或字母

在C++中, 可以用isdigit()判断一个字符是否是数字,可以用isalpha()判断一个字符是否是字母,还有很多,都在<cctype>头文件中 而类似的方法在JAVA中,则主要是Character类的静态方法: Character.isDigit( char ch ) // 判断ch是否是数字字符,如'1','2‘,是返回true.否则返回false Character.isLetter( char ch ) // 判断ch是否是字母字符,如'a','b‘,是返回true.否则返回fal