【问题标题】:SQL Select range for nvarchar columnSQL 选择 nvarchar 列的范围
【发布时间】:2014-05-05 04:03:47
【问题描述】:

如何从column_a 范围为 55 - 42000 的表中进行选择。

注意:column_a 的数据类型在 nvarchar

我试过这样,但没有运气

SELECT 
   SoftwareName, SoftwareImageTeaser, SoftwarePrice, SoftwareDescription
FROM 
   View_Software_Listing_With_Category 
WHERE 
   (SoftwarePrice >= '55' AND SoftwarePrice <= '42000')

【问题讨论】:

  • 如果您需要将列视为 int,为什么将其存储为 varchar?
  • 我假设column_a这里指的是SoftwarePrice?
  • @asprin 是的,column_a 是 SoftwarePrice,
  • @MarcB 因为我无法控制数据输入部分。这是之前已经插入的现有数据。

标签: sql sql-server


【解决方案1】:
SELECT SoftwareName,SoftwareImageTeaser,SoftwarePrice,SoftwareDescription
FROM View_Software_Listing_With_Category 
WHERE (CAST(CAST(SoftwarePrice AS FLOAT) AS INT) BETWEEN 55 AND 42000

【讨论】:

【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2013-09-21
    • 1970-01-01
    • 1970-01-01
    • 2014-09-01
    • 2019-02-14
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    • 2019-09-05
    相关资源
    最近更新 更多