如何从sql server中的nvarchar列中选择数值?

时间:2011-06-24 11:12:59

标签: sql sql-server-2008

我有像

这样的表格
Create table Producttbl ( sno nvarchar(100),sname nvarchar(200),price nvarchar(100))

sno    sname price
1       aaa   1.50
2       ccc   5.30 
abc     xxx   abc
3       dsd   kkk 
nn      dss   5.1 

价格列为nvarchar,它接受​​所有类型的数据,如字符串或数字。

从该表中,我想选择这样的结果:

   sno        sname  price
    1           aaa   1.50
    2           ccc   5.30

请帮帮我。

2 个答案:

答案 0 :(得分:2)

您可能希望sno值由数字和仅数字组成(否则,您需要指定您希望接受的“数字”类型):

select * from ProductTbl where sno not like '%[^0-9]%'

我们使用双重否定检查来排除包含非数字字符的sno值。

答案 1 :(得分:2)

您是否尝试过使用isnumeric函数?

SELECT sno,sname
FROM ProductTbl
WHERE ISNUMERIC(sno)=1

您应该阅读isnumeric文档,以确保它返回您期望的结果。 (见下面的评论)。