替换空字符串
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'
我发现了一些我以前不知道的行为。为什么这行代码不起作用?
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'