数据库里对应id是1111111111的数据是:
Type varchar (255) = 0
Address1 varchar (255) = 'fuan dajie'
Address2 varchar (255) = 'number 105'
Address3 varchar (255) = NULL
City varchar (255) = 'Beijing'
PostalCode varchar (255) = '400255'
Phone varchar (255) = '101456789'
FAX varchar (255) = ''
CellPhone varchar (255) = '136589756'要求通过where子句能得到字符串的长度大于0的值,问下面的sql是否正确?我看了半天也没发现不对的地方。是不是LTRIM函数不能用在NULL或者“”上?LTRIM(Address3) 或者LTRIM(FAX) 时会报错?
SELECT * FROM table1
WHERE ISNULL (Type, '') <> ''
AND LEN (LTRIM(Address1) +
LTRIM(Address2) +
LTRIM(Address3) +
LTRIM(City) +
LTRIM(PostalCode) +
LTRIM(Phone) +
LTRIM(FAX) +
LTRIM(CellPhone) ) > 0
AND id = 1111111111
Type varchar (255) = 0
Address1 varchar (255) = 'fuan dajie'
Address2 varchar (255) = 'number 105'
Address3 varchar (255) = NULL
City varchar (255) = 'Beijing'
PostalCode varchar (255) = '400255'
Phone varchar (255) = '101456789'
FAX varchar (255) = ''
CellPhone varchar (255) = '136589756'要求通过where子句能得到字符串的长度大于0的值,问下面的sql是否正确?我看了半天也没发现不对的地方。是不是LTRIM函数不能用在NULL或者“”上?LTRIM(Address3) 或者LTRIM(FAX) 时会报错?
SELECT * FROM table1
WHERE ISNULL (Type, '') <> ''
AND LEN (LTRIM(Address1) +
LTRIM(Address2) +
LTRIM(Address3) +
LTRIM(City) +
LTRIM(PostalCode) +
LTRIM(Phone) +
LTRIM(FAX) +
LTRIM(CellPhone) ) > 0
AND id = 1111111111
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货