如何找出有多少零存在并在SQL表中显示零

时间:2014-01-08 10:29:31

标签: c# asp.net sql

用于创建表的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

查找出现零的数量并显示零结果

5 个答案:

答案 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()