如何从SQL Server中仅检索整数值

Aji*_*mar 4 sql t-sql sql-server sql-server-2008-r2

如何只检索此列中的整数值?

我的桌子:

CREATE TABLE tbl_data (
    [Name] nvarchar(max)
)

INSERT INTO tbl_data VALUES
('Nikesh'),
('113'),
('sunam'),
('sudhir'),
('2.30'),
('ankit'),
('675')
Run Code Online (Sandbox Code Playgroud)

我需要的输出:

Name
-----
113
675
Run Code Online (Sandbox Code Playgroud)

Vla*_*nov 6

在重复的目标上取得最多的赞成答案.从代码中删除a ,加上来自该答案的注释为什么是非数字LIKE [0-9]?,这个关于整数的问题的准确答案是这样的:

SELECT Name
FROM tbl_data
WHERE Name NOT LIKE '%[^0123456789]%' COLLATE Latin1_General_CS_AS
Run Code Online (Sandbox Code Playgroud)


Had*_*adi 5

Select name from tbl_data where Isnumeric(name) = 1 and name not like '%.%'
Run Code Online (Sandbox Code Playgroud)


leg*_*007 3

您可以使用 IsNumeric 函数。

欲了解更多信息,请访问:https://msdn.microsoft.com/en-us/library/ms186272.aspx

msdn有一个例子:

USE master;  
GO  
SELECT name, isnumeric(name) AS IsNameANumber, database_id, isnumeric(database_id) AS IsIdANumber   
FROM sys.databases;  
GO  
Run Code Online (Sandbox Code Playgroud)

但请记住,您的设计看起来并不好。每列应该只存储一种数据类型。

谢谢

  • 这个答案是关于所有类型的数字而不是整数 (4认同)