一,实现功能是为了个人隐私,显示号码用“*”号代替隐藏,先介绍REPLACE,
1.REPLACE:是用来替换一个字符的内容,replace("str1",str2"","str3")在字符串str1中当str2出现,就把str3的内容替换给str2.
例如::
2.substring:SQL 中的 substring 函数是用来抓出一个字符串中的介于两个指定下标的一部分。这个函数的名称在不同的资料库中不完全一样,功能:函数返回字符、binary、text 或 image 表达式的一部分,
例如:
语法
SUBSTRING ( expression, start, length )
参数
expression
字符串、二进制字符串、文本、图像、列或包含列的表达式。请勿使用包含聚合函数的表达式。
start
整数或可以隐式转换为 int 的表达式,指定子字符串的开始位置。
length
整数或可以隐式转换为 int 的表达式,指定子字符串的长度。
例如:
3.二者一起用就实现了……
View Code
1 -- =============================================
2 -- Author: huicaoer
3
4 -- Create date: 2011-04-28
5 -- Description: 获取某日的销售排行
6 -- =============================================
7 ALTER PROCEDURE [dbo].[UP_GetDateRanking] --10,'2011-04-14'
8 @Top int=0,
9 @daytime datetime --查询日期
10 AS
11 BEGIN
12 DECLARE @st varchar(20);
13 DECLARE @et varchar(20);
14 SET @st=(Select CONVERT(varchar(100), @daytime, 23)+' 00:00:00');
15 SET @et=(Select CONVERT(varchar(100), @daytime, 23)+' 23:59:59');
16 DECLARE @topNum varchar(10)
17 SET @topNum=''
18 IF @Top>0
19 SET @topNum=' Top '+ltrim(@Top)
20
21 DECLARE @sql varchar(5000)
22 SET @sql='SELECT @topNum ofId,REPLACE(ofLogin,substring(ofLogin,4,4),''****'') as 商户,(SELECT SUM(ofAmount) FROM IP_OfficeFinance WHERE IP_OfficeFinance.ofId=IP_OfficeInfo.ofId AND ofType=2 and ofTime between '''+@st+''' and '''+@et+''') AS 总销售额,''暂未开放'' as 奖励积分 FROM IP_OfficeInfo ORDER BY 总销售额 desc'
23 set @sql=replace(@sql,'@topNum',@topNum)
24 print @sql
25 exec(@sql)
26 END
2,未写完