我有一个带有列clnum的数据库表,即varchar。它是数字,但可以包含前导零。给定用户在C#.Net程序中输入数字X,我需要确定表中不存在的下一个数字并将其显示给用户。这是SQL Server 2008.我能做的是剥离任何前导零,将结果数传递给T-SQL存储过程,并执行以下操作:
CREATE PROCEDURE [dbo].[getNextClientNum]
@ModelNumber AS int
AS
;WITH UsedNumbers (clnum, clname1)
AS
(
SELECT clnum, clname1
FROM QueuedClientMatters
),
OrderedNumbers (clnum, clnum_int, clname1)
AS
(
SELECT TOP 500000 clnum, CAST(clnum AS int) AS clnum_int, clname1
FROM UsedNumbers
WHERE CAST(clnum AS int) > @ModelNumber
ORDER BY clnum
)
SELECT TOP 1 previd
FROM (SELECT clnum_int, LAG(clnum_int) OVER (ORDER BY clnum) previd
FROM OrderedNumbers) q
WHERE previd <> clnum_int - 1
ORDER BY clnum_int
然后我会在我的C#程序中将前导零添加回prev,使其长度为6(所有clnums总是6位数)并显示它。但有没有办法绕过前导零点然后再添加它们?
答案 0 :(得分:1)
在转换为int之前,您不需要去除前导零,这将在转换过程中自动发生。
使用SQL,您可以使用<script>
$.get("item.txt", function(data) {
});
</script>
唯一真正的替代方法是将值作为字符串存储在表中,这样就不会丢失零。