替换空字符串

REPLACE empty string

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

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

我什至不能 '' 在 where 条件下。它只是行不通。我从导入的 Excel 那里得到了这个,在某些单元格中没有值,但我无法删除它们,除非我使用 LEN('') = 0 函数。

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

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

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

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

这个returns'0'.

您可以为此使用 CASE。

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

已解决! > 检查''等多个场景,删除空格,Null,string/numeric result

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