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

时间:2015-05-14 20:16:18

标签: sql-server sql-server-2008 tsql

Array
(
    [0] => Array
        (
            [id] => 1
            [company_name] => Google
            [CEO] => Mike
            [occ] => 14
        )

    //...

    [4] => Array
        (
            [id] => 3
            [company_name] => Bmw
            [CEO] => Steve
            [occ] => 0
        )

)

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 列包含带有文本数据的月份数据。我正在尝试将JAN-DEC转换为数字。

CustomText1

2 个答案:

答案 0 :(得分:7)

“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

答案 1 :(得分:1)

格雷格的答案有效,但它超过了12行。以下是如何在一个中完成的。

SELECT MONTH(CAST('01' + CustomText1 + '00' AS DATE))
FROM dbo.Customer