思路大概是这样:
实用ltrim或者rtrim函数去掉左边或右边符合条件的字符。
如果是oracle环境,看你这里都是字母在前数字在后的格式,假设旧列叫 col_old,新的字母列是col_str,新的数字列是col_num
update table1 set
col_str=rtrim(col_old,'1234567890'),
col_num=to_number(ltrim(col_old,rtrim(col_old,'1234567890')))
sql server 有没有这个函数不知道了,反正这是一个思路吧。供参考而已
sql没有这个东西,那我就给你提个思路吧,语句你自己写了,我没有环境。
用ASCII码和sql的ltrim和rtrim来做,你需要循环找到从左起每个字符都是ASCII>=65(9以上即字母)的,直到找到ASCII<=64的就结束,这样可以把这个字符部分的长度得到,在用trim函数截取一下就可以了。
一般为空都用null表示,所以一句sql语句就可以。
select from 表名 where 日期字段 is null;
这里要注意null的用法,不可以用=null这样的形式表示。
测试:
创建表插入数据:
create table test(id int,insert_date datetime) insert into test values (1,GETDATE())insert into test values (2,null)
执行:
select from test where insert_date is null;
结果:
如果写成=null,则没有结果。
如:
看你什么数据库了
每种数据库的方式不太一样的
给你sqlserver的方法
select课程名称,学分
from 表
where left(课程名称,3)='计算机'
and right(课程名称,2)='基础'
一个是程序语言中的trim()方法可以去掉空白,一个是数据库中的rtrim(col)可以去掉空白
char类型一般是定长数据,如果变长的话不足位用空白补,所以如果变长应该用varchar类型
SQL语句 select 课程名称,学分 from Table where LEFT(课程名称,3)=‘计算机’ and RIGHT(RTrim(课程名称),2)=‘基础’ LEFT(课程名称,3) 在课程名称中从左截取3个字符。 RIGHT(RTrim(课程名称),2) 在课程名称中从右截取2个字符。 RTrim(课程名称) 去掉课程名称字段中的空格。
rim、Ltrim及Rtrim函数完成将字符串中的一部分或全部空格去掉。Trim去掉字符串中的全部空格,Ltrim去掉字符串中起始的空格,而Rtrim将字符串末尾的空格都去掉,例如:
Dim A,B As String
A=" hello " '初始化字符串
B=Trim(A) 'B="hello"
B=Ltrim(B) 'B="hello "
B=Rtrim(B) 'B=" hello"
去掉回车和换行符可通过replace函数,并找出Oracle的回车和换行的ascii码来去掉。
如图:test表中str字段数据内容如下:
执行以下语句,去掉回车和换行符。
回车,ASCII码13
换行,ASCII码10
所以,语句为:
update test set str=replace(replace(str,chr(10)),13);结果为:
以上就是关于在SQL数据库表中添加一列数值型(默认保留2位)的数字,该怎么写全部的内容,包括:在SQL数据库表中添加一列数值型(默认保留2位)的数字,该怎么写、数据库 日期列带空格怎么查询时间、在数据库中,怎么查询以'计算机'开头,'基础'结尾的课程名称,学分等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)