我想知道如何在sql中找到数值字段的长度。什么是命令/查询,以便我们可以在表格中找到永久字段的长度。
例如:下表:
Column1 Column2
1 1111
2 11
3 44444
4 11
5 111从上面的例子中,我希望看到"column2“列中的记录/字段,它的数字长度是'2‘。
我应该执行什么查询来实现这一点?
发布于 2015-12-16 14:40:14
使用LEN函数
select *
from table
where len(column2) = 2当您想要包含像'0.2‘或类似值这样的数据时,这将不起作用
发布于 2015-12-16 14:43:33
还可以使用POWER函数以及<和>=来维护SARGability
WITH tbl (column1, column2) AS(
SELECT 1, 1111 UNION ALL
SELECT 2, 11 UNION ALL
SELECT 3, 44444 UNION ALL
SELECT 4, 11 UNION ALL
SELECT 5, 111
)
SELECT *
FROM tbl
WHERE
column2 < POWER(10, 2)
AND column2 >= POWER(10, 1)发布于 2015-12-16 15:31:55
你不能像之前说的那样,here
长度和数字都是特定基数(即字符串)中数字的物理表示的属性。
所以你必须先将数字字段转换为varchar/char,然后找到长度,如下所示:
SQL Server:
select *
from table
where len(CONVERT (varchar(10), colunm2 )) = 2MySQL:
select *
from table
where length(convert(column2,char)) = 2https://stackoverflow.com/questions/34305418
复制相似问题