nvarchar列的SQL选择范围

nvarchar列的SQL选择范围,sql,sql-server,Sql,Sql Server,如何从列a在55-42000范围内的表格中进行选择 注意:列a的数据类型位于nvarchar 我试过这样,但运气不好 SELECT SoftwareName, SoftwareImageTeaser, SoftwarePrice, SoftwareDescription FROM View_Software_Listing_With_Category WHERE (SoftwarePrice >= '55' AND SoftwarePrice <= '420

如何从
列a
在55-42000范围内的表格中进行选择

注意:
列a
的数据类型位于
nvarchar

我试过这样,但运气不好

SELECT 
   SoftwareName, SoftwareImageTeaser, SoftwarePrice, SoftwareDescription
FROM 
   View_Software_Listing_With_Category 
WHERE 
   (SoftwarePrice >= '55' AND SoftwarePrice <= '42000')
选择
SoftwareName、SoftwareImageTrister、SoftwarePrice、SoftwareDescription
从…起
查看\u软件\u列表\u和\u类别
哪里

(SoftwarePrice>='55'和SoftwarePrice试试这个,因为您的
SoftwarePrice
列是nvarchar,您需要将它转换为整数,以便与整数值进行比较。然后您可以使用
between
子句来过滤记录

SELECT SoftwareName,SoftwareImageTeaser,SoftwarePrice,SoftwareDescription
FROM View_Software_Listing_With_Category 
WHERE Cast(SoftwarePrice as Int) between 55 AND 42000

如果需要将列视为int,为什么要将其存储为varchar?我假设
column\u a
这里指的是
SoftwarePrice
?@asprin是的,column\u a是SoftwarePrice,@MarcB,因为我对数据输入部分没有控制权。这是以前插入的现有数据。为什么要先将其转换为float,然后再转换为t母鸡重铸为int?
SELECT SoftwareName,SoftwareImageTeaser,SoftwarePrice,SoftwareDescription
FROM View_Software_Listing_With_Category 
WHERE (CAST(CAST(SoftwarePrice AS FLOAT) AS INT) BETWEEN 55 AND 42000