SELECT REPLACE('hello', 'e', NULL)
-- returns NULL
SELECT REPLACE('hello', '5', NULL)
-- also returns NULL -- here I'd expect it does nothing since there is no '5' in 'hello'
該檔案明確指出:
如果任一引數為 NULL,則回傳 NULL。
所以行為被解釋了。
是否有解決方法,這意味著如果在 hello 中的 'e' 之類的字串中找到模式;發出 NULL 值?
uj5u.com熱心網友回復:
似乎REPLACE不是你所追求的。一種方法是使用 aCASE和 a LIKE:
SELECT CASE WHEN 'hello' NOT LIKE '%5%' THEN 'hello' END;
或者,您可以使用CHARINDEX:
SELECT CASE WHEN CHARINDEX('5','hello') = 0 THEN 'hello' END;
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/393002.html
標籤:sql sql-server sql-server-2008
上一篇:洗掉日期不是最小值的行
