REPLACE空字符串

时间:2015-03-12 13:31:57

标签: sql sql-server-2008-r2

我发现了一些我以前不知道的行为。为什么这行代码不起作用?

SELECT REPLACE('','','0') ==> returns ''

我甚至无法''在哪里。它只是不起作用。我从导入的excel中得到了这个,在某些单元格中没有值,但除非我使用LEN('')= 0函数,否则我无法删除它们。

任何想法?

4 个答案:

答案 0 :(得分:3)

空字符串中没有可替换的内容。 REPLACE将字符串中的序列替换为另一组字符。

您可以使用NULLIF将其视为NULL + COALESCE(或ISNULL):

declare @value varchar(10);
set @value = '';
SELECT COALESCE(NULLIF(@value,''), '0')

返回'0'

答案 1 :(得分:0)

确实有效。这里有两个正确的行为 - 第一个是返回空字符串(它已经做了什么),第二个是返回充满零的无限字符串。

答案 2 :(得分:0)

您可以为此使用CASE。

(CASE WHEN *YOURTHING* = '' THEN '0' ELSE *YOURTHING* END) 
AS *YOURTHING*

答案 3 :(得分:0)

解决了! >检查多个情况,例如“”,删除空格,空值,字符串/数字结果

 SELECT CASE WHEN LTRIM(RTRIM(ISNULL(mob, 0))) = '' THEN '0' ELSE LTRIM(RTRIM(ISNULL(mob, 0)))  END  MobileNo 
FROM table1 WHERE emp_no = '01111'