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)
在重复的目标上取得最多的赞成答案并.从代码中删除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)
Select name from tbl_data where Isnumeric(name) = 1 and name not like '%.%'
Run Code Online (Sandbox Code Playgroud)
您可以使用 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)
但请记住,您的设计看起来并不好。每列应该只存储一种数据类型。
谢谢