set val=isnull(FLD380,'Null')
* 我需要为SPACE('')编写相同的语句。 这样如果在空值或空值存在时如何在sql中设置变量
set val=space(FLD380,'Space')
set val=isnull(FLD380,'Null')
* 我需要为SPACE('')编写相同的语句。 这样如果在空值或空值存在时如何在sql中设置变量
set val=space(FLD380,'Space')
你是什么专门要求的是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
MySQL没有'NVARCHAR'数据类型。 – 2013-02-18 06:16:44
@ypercube - 目前还不清楚是否沙基尔是MySQL或SqlServer的(两者都指定)。由于他使用MySQL的语法(见下文)打了一个语法错误,这是相当安全的假设他是在SqlServer的。 – 2013-02-18 06:20:56
哦,你可能是正确的。我没有仔细阅读。在'ISNULL()'函数是在你担任一个+1了。我也会在答案中添加(SQL-Server假设)。 – 2013-02-18 06:24:00
SET val = IF(FLD380 = '', 'Space', IFNULL(FLD380, 'Null'))
它包含语法ERR @expolsion加 – 2013-02-18 05:08:47
@SHAKEELHUSSAIN - 这句法是设置MySQL和它将编译没有错误。 – 2013-02-18 06:19:08
ok thankx 我正在使用sqlserver – 2013-02-19 04:54:25
怎么样使用COALESCE
SET val = IF(TRIM(FLD380) = '', 'SPACE', COALESCE(FLD380, 'NULL'))
SET val= CASE WHEN FLD380 = '' THEN 'Space' ELSE
(CASE WHEN FLD380 IS NULL THEN 'Null' END) END
'当FLD380 = NULL'应该是'WHEN FLD380 IS NULL' – 2013-02-19 06:58:19
谢谢,我检查它 – 2013-02-19 07:24:18
这是MySQL或SQL的服务器?请澄清,因为它很重要,答案可能会有所不同。 – 2013-02-18 06:24:43
我使用MS-SQLSERVER – 2013-02-19 04:58:22