Ⅰ 在sql语句里面如何将字符型转换成数字型
将字陆销符的数字转成数字,比如'0'转成0可以直接用加法来实现;
例如:将pony表中的d 进行排序,可d的定义为varchar,可以这样解决;
select * from pony order by (d+0);
在进行ifnull处理时,比如 ifnull(a/b,'0') 这样就会导致 a/b成了字符串,因此需要把'0'改成0,即可解决此困扰;
比较数字和varchar时,比如a=11,b="11ddddd";
则 select 11="11ddddd"相等;
若绝对比较可以这样:
select binary 11 =binary "11ddddd";
字符集转换 : CONVERT(xxx USING gb2312);
类型转换和SQL Server一样,就是类型参数有点点不搜郑同 : CAST(xxx AS 类型),CONVERT(xxx,类型);
类型必须用下列的类型:BINARY、CHAR()、DATE、TIME、DATETIME、DECIMAL、SIGNED、早漏游UNSIGNED。
Ⅱ SQL里最基本的问题。。。。
数歼歼肆据类型
int 跟c语言改衡一样,代表整形的数据类型
char 代表字符数据氏轿类型
如果是int类型的字段,你插入数据的时候是字符的话,会报错,数据类型不匹配
Ⅲ 在sql语句中阿拉伯数字是字符型吗
原则上来说:
如果用 单引号引起来的话,就是字符型。
如果不用单引号引起来的话,就是数字型。
在insert语句或者 赋值等语句中,可能会出现自动类型转换的情况。
Ⅳ sql中如何将阿拉伯数字转为汉字
Create Procere AtoC
@ChangeMoney Money
as
Set Nocount ON
Declare @String1 char(20)
Declare @String2 char(30)
Declare @String4 Varchar(100)
Declare @String3 Varchar(100) –从原A值中取出的值
Declare @i int –循环变量
Declare @J Int –A的值乘以100的字符串长度
Declare @Ch1 Varchar(100) –数字的汉语读法
Declare @Ch2 Varchar(100) –数字位的汉字读法
Declare @Zero Int –用来计算连续有几个零
Declare @ReturnValue VarChar(100)
Select @ReturnValue = ”
Select @String1 = ‘零壹贰叁肆伍陆柒捌玖’
Select @String2 = ‘万仟佰拾亿仟佰拾万仟佰拾元角分’
Select @String4 = Cast(@ChangeMoney*100 as int)
select @J=len(cast((@ChangeMoney*100) as int))
Select @String2=Right(@String2,@J)
Select @i = 1
while @i<= @j Begin
Select @String3 = Substring(@String4,@i,1)
if @String3<>‘0′ Begin
Select @Ch1 = Substring(@String1, Cast(@String3 as Int) + 1, 1)
Select @Ch2 = Substring(@String2, @i, 1)
Select @Zero = 0 –表示本位不为零
end
else Begin
If (@Zero = 0) Or (@i = @J – 9) Or (@i = @J – 5) Or (@i = @J – 1)
Select @Ch1 = ‘零’
Else
Select @Ch1 = ”
Select @Zero = @Zero + 1 –表示本位为0
–如果转换的数值需要扩大,那么需改动以下表达式 I 的值。
Select Ch2 = ”
If @i = @J – 10 Begin
Select @Ch2 = ‘亿’
Select @Zero = 0
end
If @i = @J – 6 Begin
Select @Ch2 = ‘万’
Select @Zero = 0
end
if @i = @J – 2 Begin
Select @Ch2 = ‘元’
Select @Zero = 0
end
If @i = @J
Select @Ch2 = ‘整’
end
Select @ReturnValue = @ReturnValue + @Ch1 + @Ch2
select @i = @i+1
end
–最后将多余的零去掉
If CharIndex(‘仟仟’,@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, ‘仟仟’, ‘仟’)
If CharIndex(‘佰佰’,@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, ‘佰佰’, ‘佰’)
If CharIndex(‘零元’,@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, ‘零元’, ‘元’)
If CharIndex(‘零万’,@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, ‘零万’, ‘万’)
If CharIndex(‘零亿’,@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, ‘零亿’, ‘亿’)
If CharIndex(‘零整’,@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, ‘零整’, ‘整’)
If CharIndex(‘零佰’,@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, ‘零佰’, ‘零’)
If CharIndex(‘零仟’,@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, ‘零仟’, ‘零’)
If CharIndex(‘元元’,@ReturnValue) <> 0
Select @ReturnValue = Replace(@ReturnValue, ‘元元’, ‘元’)
Select @ReturnValue
GO
Ⅳ SQL语句查询姓名包含阿拉伯数字、英文字母等不符合规范的文字怎么写
select * from pop where datediff(day,birth_date,getdate()) >= 7*365.25 and name in ('未取名'、%[0-9]%、%[a-z]%,%[A-Z]%) or len(name)<2 len(name)<2这里你要试验一下,看看你使用的数据库对2个汉字返回什么值,有的是4,有的是2
Ⅵ SQL字符型与数值型有什么区别啊
从字面意思你应该能够理解得出来:
字符型:最简单的意思是文本类型,可以是汉字、特殊字符、阿拉伯数据、标点符号等
数值型:最简单的意思是数字,只能是整数(就像-1,-2,0,1,2等)
Ⅶ SQL中的符号^,!,$,#,&,各表示什么意思
^(位异或)
对两个整数值执行“位异或”运算。它会将第一个操作数的每一位与第二个操作数中对应的每一位进行比较。如果一位是 0,另一对应位是 1,则相应结果位设置为
1。如果两位都是 0 或两位都是 1,则相应结果位设置为 0。
两个条件必须都为有符号的整数数据类型,或都为无符号的整数数据类型。
!(逻辑非)! 运算符不能与其他运算符一起使用。例如,不能将 ! 和 > 运算符组合为 !>. 运算符。
&(位与)
对两个整数值执行“位与”运算。它会将第一个操作数的每一位与第二个操作数中对应的每一位进行比较。如果两位都是 1,则相应的结果位设置为
1。否则,相应的结果位设置为 0。
两个条件都必须是有符号整数类型,或者都必须是无符号整数类型。
$,# 这两个没有实际含义
Ⅷ sql语句中怎样将字符类型转换成数字类型
先检查金额列的数据是否都符合小数规范,转为数字格式只有是数字的字符串才能转,如000012转为12,.55转为0.55,若是个英文符号等字符转了就报无效数字类型的错。
Ⅸ 把中文数字转化成阿拉伯数字有什么好的方法用sql 语句。
你说的中文数字应该是字符一、二、三……吧?这是字符判断转为数字,可以用DECODE和CASE WHEN 来解决。如:
select decode(table_column,'一',1,'二',2,'三',3,'四',4,'五',5,'六',6,'七',7,'八',8,'九',9,'零',0,'') from (select '六' as table_column from al) your_table;
select case when table_column = '一' then 1
when table_column = '二' then 2
when table_column = '三' then 3
when table_column = '四' then 4
when table_column = '五' then 5
when table_column = '六' then 6
when table_column = '七' then 7
when table_column = '八' then 8
when table_column = '九' then 9
when table_column = '零' then 0
else null end
from (select '六' as table_column from al) your_table;