sql-server - 如何在 SQL Server 中将文本数据更改为数字?

标签 sql-server sql-server-2008 tsql

SELECT 
    a.AccountNumber, a.FirstName, a.LastName, a.Address, a.City, a.State, 
    a.Zip, a.EmailAddress, a.PhoneNumber, a.LastUpdated, a.LastVisit, 
    a.TotalSales, a.AccountOpened, a.CustomText4 as StoreCode, 
    CASE
        WHEN (a.CustomText1 IS 'JAN') THEN '1' 
    END AS DOB, 
    GETDATE() as Extract_date
FROM 
    database.dbo.Customer a

CustomText1 列包含带有文本数据的月份数据。我正在尝试将 JAN-DEC 转换为数字。

CASE WHEN IS '' 不起作用。

最佳答案

“IS”不是 CASE 语句的有效表达式。检查online doc ,你有几种方法可以做到这一点,这是最简单的方法,在剩下的几个月里重复。

SELECT DOB = 
    CASE a.CustomText1
        WHEN 'JAN' THEN '1'
        WHEN 'FEB' THEN '2'
        WHEN 'MAR' THEN '3'
        ELSE a.CustomText1
    END
FROM database.dbo.Customer a

关于sql-server - 如何在 SQL Server 中将文本数据更改为数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30246547/

相关文章:

c# - 使用 SSIS 加载非标准格式的 CSV

c# - MSDTC 事务被提升为分布在事务范围外执行的查询上

sql - SQL Server 2008 上的 TableDiff 实用程序有哪些替代方案?

c# - 只从列表 executereader 中获取单个值

sql-server - 什么时候应该在 SQL Server 中使用分号?

sql-server - SSIS完全忽略Excel列

sql-server - 回收时间报告服务

sql-server - SQL 服务器 : NOT IN in where clause not working with NVARCHAR

sql - 我们可以在 SQL 查询中将数据库名称作为参数传递吗?

tsql - PetaPoco INSERT with @ in the string