
表名:tb_goods
单价:price
编号:no
update tb_goods set price=price01 where no like '10%';
sql中,使用LEFT函数即可取到字符串的前几位。
LEFT(c, number_of_char)用于返回某个被请求的文本域的左侧部分,其中c代表被请求的文本域,number_of_cha代表需要取出的字符串位数。如“LEFT("zhidaobaiducom", 6)”即可取得字符串"zhidao"。
扩展资料:
sql中,常用函数介绍:
1、AVG():返回平均值
2、COUNT():返回行数
3、FIRST():返回第一个记录的值
4、LAST():返回最后一个记录的值
5、MAX():返回最大值
6、MIN():返回最小值
7、SUM():返回总和
8、UCASE():将某个字段转换为大写
9、LCASE():将某个字段转换为小写
10、MID():从某个文本字段提取字符
11、LEN():返回某个文本字段的长度
12、ROUND():对某个数值字段进行指定小数位数的四舍五入
13、NOW():返回当前的系统日期和时间
14、FORMAT():格式化某个字段的显示方式
15、INSTR():返回在某个文本域中指定字符的数值位置
16、LEFT():返回某个被请求的文本域的左侧部分
17、RIGHT():返回某个被请求的文本域的右侧部分
参考资料来源:百度百科-SQL函数
思路大概是这样:
实用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函数截取一下就可以了。
假设A列数据均为5位数,建立辅助列B,在B列提取A列数据的后三位;
1、在B2单元格输入公式:=RIGHT(A2,3) 回车
见图一
2、选中B2单元格,下拉填充B列,实际结果:
见图二
可以这样写
alter table table1 add constraint chk_col check(
len(col1)= 8 and
left(col1,2) = '00' and
substring(col1,3,1) like '[1-9]' and
substring(col1,4,1) like '[1-9]' and
substring(col1,5,1) = '_' and
substring(col1,6,1) like '[A-Z]' and
substring(col1,7,1) like '[A-Z]' and
substring(col1,8,1) like '[A-Z]' );
以上就是关于在sql数据库中将商品表中商品号前两位编号为10的商品的单价修改为出厂单价的0.1。怎么做全部的内容,包括:在sql数据库中将商品表中商品号前两位编号为10的商品的单价修改为出厂单价的0.1。怎么做、sql 怎么取 字符串的前几位、在SQL数据库表中添加一列数值型(默认保留2位)的数字,该怎么写等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)