SQL SERVER数据库 - 初识函数

问题一:

某公司印了一批充值卡,卡的密码是随机生成的,现在出现这个问题:
    卡里面的“O和0”(哦和零)“i和1”(哎和一),用户反映说看不清楚,公司决定,把存储在数据库中的密码中所有的“哦”都改成“零”,把所有的“i”都改成“1”;

请编写SQL语句实现以上要求;
数据库表名:Card;密码字段名:PassWord;

 

分析:

这是更新语句,需要使用UPDATE语句;
因为牵涉到字符串的替换,需要使用到SQL Server中的函数Replace;

如果用两行SQL语句,则为

Update Card Set PassWord = Replace(密码,'O','0')
Update Card Set PassWord = Replace(密码,'i','1')

如果用一行来表示,则可以写成:

Update  Card
Set  PassWord = Replace(Replace(密码,'O','0'),'i','1')

 

问题二:

在数据库表中有以下字符数据,如:
 13-1、13-2、13-3、13-10、13-100、13-108、13-18、13-11、13-15、14-1、14-2

现在希望通过SQL语句进行排序,并且首先要按照前半部分的数字进行排序,然后再按照后半部分的数字进行排需,输出要排成这样:
 13-1、13-2、13-3、13-10、13-11、13-15、13-18、13-100、13-108、14-1、14-2

数据库表名:SellRecord;字段名:ListNumber;

 

分析:

这是查询语句,需要使用SELECT语句
需要使用到ORDER BY进行排序,并且在ORDER BY的排序列中,也需要重新计算出排序的数字来
前半部分的数字,可以从先找到“-”符号的位置,然后,取其左半部分,最后再使用Convert函数将其转换为数字:
 Convert(int, Left(ListNumber, CharIndex('-', ListNumber)-1))
后半部分的数字,可以先找到“-”符号的位置,然后把从第一个位置到该位置的全部字符替换为空格,最后再使用Convert函数将其转换为数字:
 Convert(int, Stuff(ListNumber,1, Charindex('-', ListNumber), ''))

 

最后代码如下:

SELECT ListNumber
FROM    SellRecord
ORDER BY
Convert(int, Left(ListNumber, CharIndex('-', ListNumber)-1)),
Convert(int, Stuff(ListNumber,1, Charindex('-', ListNumber), ''))

 

 

日期函数:

SQL 日期函数

 

数学函数:

SQL数学函数

 

系统函数:

SQL系统函数

 

 字符串函数:

SQL 字符串函数

 

(北大青鸟的PPT上看到的)

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值