2013-02-18 130 views

回答

2

你是什么专门要求的是user-defined function。请注意,此语法适用于SQL Server。

CREATE FUNCTION IsSpace (
    @check_expression NVARCHAR(max), 
    @replacement_value NVARCHAR(max) 
) 
RETURNS NVARCHAR(MAX) 
BEGIN 
    IF @check_expression = N'' 
    RETURN @replacement_value 

    RETURN @check_expression 
END 

可以称之为是这样的:

set @val = IsSpace(FLD380, N'Space') 

另外,这里的爆炸丸响应的SQL Server的语法。

SET @val = 
    CASE 
    WHEN FLD380 = '' THEN 'Space' 
    ELSE ISNULL(FLD380, 'null') 
    END 
+0

MySQL没有'NVARCHAR'数据类型。 – 2013-02-18 06:16:44

+0

@ypercube - 目前还不清楚是否沙基尔是MySQL或SqlServer的(两者都指定)。由于他使用MySQL的语法(见下文)打了一个语法错误,这是相当安全的假设他是在SqlServer的。 – 2013-02-18 06:20:56

+0

哦,你可能是正确的。我没有仔细阅读。在'ISNULL()'函数是在你担任一个+1了。我也会在答案中添加(SQL-Server假设)。 – 2013-02-18 06:24:00

0
SET val = IF(FLD380 = '', 'Space', IFNULL(FLD380, 'Null')) 
+0

它包含语法ERR @expolsion加 – 2013-02-18 05:08:47

+0

@SHAKEELHUSSAIN - 这句法是设置MySQL和它将编译没有错误。 – 2013-02-18 06:19:08

+0

ok thankx 我正在使用sqlserver – 2013-02-19 04:54:25

0

怎么样使用COALESCE

SET val = IF(TRIM(FLD380) = '', 'SPACE', COALESCE(FLD380, 'NULL')) 
1
SET val= CASE WHEN FLD380 = '' THEN 'Space' ELSE 
(CASE WHEN FLD380 IS NULL THEN 'Null' END) END 

See fiddle

+0

'当FLD380 = NULL'应该是'WHEN FLD380 IS NULL' – 2013-02-19 06:58:19

+0

谢谢,我检查它 – 2013-02-19 07:24:18

相关问题