用于创建表的SQL查询
CREATE TABLE Test
(ID int,
Value1 int,
Value2 int,
)
插入值的SQL查询
INSERT INTO Test
VALUES(001,200,300)
输出
ID Value1 Value2
1 200 300
查询在结果中显示00
SELECT RIGHT('00' + CAST([ID] AS varchar(5)) , 3),Value1,Value2
FROM Test
现在输出
001 200 300
我的Id值最大为5位数
示例00001,00010,00100,01000,10000
现在我想显示结果
00001,00010,00100,01000,10000
我需要一个查询自动找出在数字之前存在多少零
示例00001此值有4zero,00010此值有3个零。
如何使用此查询
SELECT RIGHT('00' + CAST([ID] AS varchar(5)) , 3),Value1,Value2
FROM Test
查找出现零的数量并显示零结果
答案 0 :(得分:7)
数字数据类型不包含前导零。如果需要存储前导零,则需要使用字符数据类型。
但是,如果你这样做,为了存储没有前导零的数字,请注意字符数据类型字段的排序是按字典顺序完成的,所以你最终会得到这样的结果:
1
10
11
2
20
21
另外,您应该注意数据存储和数据显示之间的区别。你可以存储没有前导零的数字,但是让你的应用程序显示它们包含前导零!
正如其他人所说的那样,
SELECT RIGHT('00' + CONVERT(NVARCHAR, Field), 3)
将帮助您选择数字字段的内容为带前导零的字符串。
您也可以使用
在C#中执行此操作String.Format("{0:d3}", fieldvalue);
答案 1 :(得分:3)
您基本上是在说“我想在整数列中存储非整数值,我该怎么做?”
现在,显而易见的答案当然是:你没有。
真正的问题是,为什么你认为你想要这个?如果(我怀疑)它是为了以后的显示目的,那么忘记插入无效数据并专注于真正的问题:我如何以我想要的方式显示我的数据?
答案就是“:在你的数据库中的任何地方:”
您可以在显示前将整数更改为字符串,可以在select
语句中,也可以在前端进一步显示。
答案 2 :(得分:1)
您必须手动格式化数字。一种方法:
select right('00' + cast(ID as varchar(3)),3)
答案 3 :(得分:1)
SELECT RIGHT('00' + CAST([ID] AS varchar(5)) , 3)
FROM test
3是输出显示中您想要总数的字符数
答案 4 :(得分:0)
首先,您不能使用零(仅在int类型中)插入值00002
或类似的东西...所以概念完全错误...或者将数据类型更改为varchar然后您可以做这些事......
如果您使用的是varchar,那么只需使用以下函数
即可reverse()