2011-12-01 96 views
1

我想运行此查询,但myfield不包含完整的电子邮件地址,姓氏,电话和电子邮件促销值?它看起来像myField的长度有限制?选择结果不完整?

SQL语句:

use adventureworks 
go 

select si.CustomerID, 
'myField' = 
      CASE 
       When (Select Top 1 FirstName+ ' ' + MiddleName + ' '+ Phone + ' ' + EmailAddress +' '+ LastName + ' ' + Phone + ' ' + cast(EmailPromotion as varchar) From Person.Contact pc Where si.ContactID = pc.contactid) is not null Then 
      Cast((Select Top 1 FirstName+ ' ' + MiddleName + ' ' + Phone + ' ' +EmailAddress +' '+ LastName + ' ' + Phone + ' ' + cast(EmailPromotion as varchar) From Person.Contact pc Where si.ContactID = pc.contactid ) As varchar) 
      Else '' 
      END 

from Sales.Individual si 
where si.CustomerID=11000 

回答

0

对于varchar[(n)]

当在数据定义或变量声明 语句未指定n,则默认长度为1。当不与 CAST函数指定n,则默认长度为30

所以明确地在CAST,例如指定一个适当长的长度varchar(256)

Ref