我发现了一些我以前不知道的行为。为什么这行代码不起作用?
SELECT REPLACE('','','0') ==> returns ''
我甚至无法''在哪里。它只是不起作用。我从导入的excel中得到了这个,在某些单元格中没有值,但除非我使用LEN('')= 0函数,否则我无法删除它们。
任何想法?
答案 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'