SQL - 如何将 varchar 转换为带大小写的 int

标签 sql

我有一张这样的 table

productId Inventory 
--------------------    
1            1
2            Ab
3            12.5
4            6
6            2

如何选择库存为int且其他值为零,其中Inventoryvarchar

最佳答案

假设这是 SQL Server,那么您可以执行以下操作:

SELECT productid, 
  CAST((CASE isnumeric(inventory) 
          WHEN 0 THEN 0 
          ELSE CAST(Inventory AS DECIMAL(10, 2)) 
        END) AS INT) AS Inventory 
FROM tablename

SQL Fiddle Demo

这会给你:

| PRODUCTID | INVENTORY |
-------------------------
|         1 |         1 |
|         2 |         0 |
|         3 |        12 |
|         4 |         6 |
|         6 |         2 |

关于SQL - 如何将 varchar 转换为带大小写的 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15049242/

相关文章:

mysql - 包含 Null 值的最大记录作为最大记录

sql - 在 Redshift 表中使用 REGEXP_REPLACE 对字符串重新排序

sql - 在sql oracle中格式化单列中的名称

java - 在字符串中的变量周围包含引号

sql - 如何用T-SQL编写传输

java - 将基于 JOIN 的聚合查询结果映射到 Hibernate 属性

mysql - 使用多个表的复杂 JOIN

sql - SELECT 请求中的多表关系

SQL Server : does an CTE update work like a transaction?

sql - Postgresql 表相交