视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
sqlsevert-sql判断输入的数字重复出现的次数
2020-11-09 09:59:44 责编:小采
文档


文章介绍了利用sql存储加while一个个判断,然后再利用Case When Then Else End 多条件判断 以指定的次数重复字符。


利用一个存储过程

代码如下
ALTER PROC NumShowTimes
(
@numValue NVARCHAR(MAX)
)
AS
BEGIN
DECLARE @TempTable TABLE(num NVARCHAR(4))---定义存放数字的表
DECLARE @TempNum NVARCHAR(4) --
DECLARE @Value nvarchar(max)
SET @Value = @numValue
---判断输入的是否是数字
WHILE(LEN(@numValue)>0)
BEGIN
SET @TempNum=SUBSTRING(@numValue,LEN(@numValue),1)
SET @numValue=SUBSTRING(@numValue,1,(LEN(@numValue)-1))
IF @TempNum LIKE'[^0-9]'
BEGIN
PRINT 'YOU INPUT NOT NUM'
RETURN
END
END
----获取数据插入表中
WHILE(LEN(@Value)>0)
BEGIN
SET @TempNum=SUBSTRING(@Value,LEN(@Value),1)
SET @Value=SUBSTRING(@Value,1,(LEN(@Value)-1))
INSERT INTO @TempTable VALUES (@TempNum)
END
SELECT num,count(num)AS [count] FROM @TempTable GROUP BY num
END

去掉判断输入的是否是数字那个while循环,就显示所输入的所字符出现的次数,包括汉字

SQL利用Case When Then Else End 多条件判断 以指定的次数重复字符 (生成当天最大顺序编号)

代码如下

Select

Case

When a is not null then a

When b is not null then b

When c is not null then c

When d is not null then d

Else ''

End 列名

From Table Name


SQL利用Case When Then多条件判断

代码如下

Select top 100 State,JoinState,
(case

when State=1 and Joinstate=0 then 2

when State=1 and JoinState=1 then 1

else 0

end )

as usestate

from UserInfo

(生成当天最大顺序编号)

substring(convert(varchar(8), getdate(), 112), 1, 8)

+'568'

+ replicate('0', 4-len(max_ContractNo)) --以指定的次数重复字符表达式

+ cast(max_ContractNo as varchar(4))

from (select

case

when substring(max(My_ContractNo), 12, 4) is null then '1'

else cast(cast(substring(max(My_ContractNo), 12, 4) as bigint) + 1 as varchar(8))

end max_ContractNo

from UserContractNo

WHERE datediff(Day,Adddate,getdate())=0

) s


CREATE TABLE [UserContractNo](

[Id] [int] IDENTITY(1,1) NOT NULL,

[ApplyUserDetailID] [int] NOT NULL,

[My_ContractNo] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF_UserContractNo_My_ContractNo] DEFAULT (''),

[AddDate] [datetime] NOT NULL CONSTRAINT [DF_UserContractNo_AddDate] DEFAULT (getdate()),

[Remarks] [varchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL CONSTRAINT [DF_UserContractNo_Remarks] DEFAULT (''),

CONSTRAINT [PK_UserContractNo] PRIMARY KEY CLUSTERED

([Id] ASC) ON [PRIMARY]

) ON [PRIMARY]

下载本文
显示全文
专题