2016-01-04 17 views
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 = 'JAN') THEN '01' +'/'+a.CustomText2+'/'+a.CustomText3 
     WHEN (a.CustomText1 = 'FEB') THEN '02' +'/'+a.CustomText2+'/'+a.CustomText3 
     WHEN (a.CustomText1 = 'MAR') THEN '03' +'/'+a.CustomText2+'/'+a.CustomText3 
     WHEN (a.CustomText1 = 'APR') THEN '04' +'/'+a.CustomText2+'/'+a.CustomText3 
     WHEN (a.CustomText1 = 'MAY') THEN '05' +'/'+a.CustomText2+'/'+a.CustomText3 
     WHEN (a.CustomText1 = 'JUN') THEN '06' +'/'+a.CustomText2+'/'+a.CustomText3 
     WHEN (a.CustomText1 = 'JUL') THEN '07' +'/'+a.CustomText2+'/'+a.CustomText3 
     WHEN (a.CustomText1 = 'AUG') THEN '08' +'/'+a.CustomText2+'/'+a.CustomText3 
     WHEN (a.CustomText1 = 'SEP') THEN '09' +'/'+a.CustomText2+'/'+a.CustomText3 
     WHEN (a.CustomText1 = 'OCT') THEN '10' +'/'+a.CustomText2+'/'+a.CustomText3 
     WHEN (a.CustomText1 = 'NOV') THEN '11' +'/'+a.CustomText2+'/'+a.CustomText3 
     WHEN (a.CustomText1 = 'DEC') THEN '12' +'/'+(select CONVERT(decimal(10,2),a.CustomText2))+'/'+a.CustomText3 
    END AS DOB, GETDATE() as Extract_date 

CustomText1 = JAN〜DEC字母列可以转换为数字。
CustomText2 =是一个数字格式的日子。如何在MSSQL查询中将单个数字号码更改为字符串

我想将其转换为两位小数。任何人都可以帮我编写sql查询吗?

+0

您可能会感兴趣的ROUND – Mihai

+0

WHEN(a.CustomText1 = 'DEC')THEN '12' + '/' +(选择ROUND(a.CustomeText2,十进制)+ '/' + a.CustomText3 那没有工作,你能告诉我更多信息吗? –

+0

你可能也想看看[format()](http://dev.mysql.com/doc/refman/5.7/en/string-functions.html# function_format)或[lpad()](http://dev.mysql.com/doc/refman/5.7/en/string-functions.html#function_lpad)。 – paulsm4

回答

0

小心你怎么说你的问题。你不想要一个decimal,你想要一个字符串,与你的其他字符串片段连接。

这是你想要什么:

...RIGHT('0'+a.CustomText2, 2)... 

如果你真的将它转换为十进制,你会得到错误,试图用'/'等来连接它。

如果您需要最终结果为date类型,则CAST或将整个CASE语句转换为该数据类型。

+0

谢谢你的回复。我明白了。我需要一个字符串... 我试过使用WHEN(a.CustomText1 ='DEC')THEN'12'+'/'+ RIGHT('0'+ a.CustomeText2,2)+'/'+ a.CustomText3 没有运气..... –

+0

然后在另一个肯定会有另一个错误查询的一部分。我在答复中给出的部分是正确的。请使用您尝试的整个查询来编辑您的问题,以及您得到的确切错误。 –

+0

对不起,你的查询是正确的!它确实有用!非常感谢! –

相关问题