文章介紹了利用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, 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
[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] |
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com