Sql server 2005 SQL Server 2005:返回值为的If语句
我试图实现一个简单的任务:从表中的两列中选择值 如果其中一个值为null,则返回null或其他值 否则返回值Sql server 2005 SQL Server 2005:返回值为的If语句,sql-server-2005,Sql Server 2005,我试图实现一个简单的任务:从表中的两列中选择值 如果其中一个值为null,则返回null或其他值 否则返回值 SELECT MobileAreaCode, Mobile FROM TABLE_NAME WHERE id = 123456789 IF (MobileAreaCode is NULL OR Mobile is NULL) BEGIN RETURN(1)--NULL END ELSE BEGIN RETURN(MobileAreaCode+
SELECT
MobileAreaCode, Mobile
FROM
TABLE_NAME
WHERE
id = 123456789
IF (MobileAreaCode is NULL OR Mobile is NULL)
BEGIN
RETURN(1)--NULL
END
ELSE
BEGIN
RETURN(MobileAreaCode+Mobile)
END
非常感谢您的帮助您需要将选择的值存储到SQL Server变量中,以便稍后检查:
DECLARE @MobileAreaCode INT
DECLARE @Mobile INT
SELECT
@MobileAreaCode = MobileAreaCode,
@Mobile = Mobile
FROM
TABLE_NAME
WHERE
id = 123456789
IF (@MobileAreaCode IS NULL OR @Mobile IS NULL)
BEGIN
RETURN NULL
END
ELSE
BEGIN
RETURN @MobileAreaCode + @Mobile
END
我不知道您的列是什么数据类型(您在问题中没有提到),所以我只是假设它们是
INT
——如果不是,根据需要进行调整。根据您对我的评论,这就是您要找的:
ALTER PROCEDURE PRO_NAME (Identification INT)
AS SELECT
CASE WHEN CONVERT(MobileAreaCode, int)>1 OR
CONVERT(Mobile, int)>1 THEN MobileAreaCode+Mobile
End FROM TABLE_NAME WHERE Hp=(Identification)
GO
旧想法/信息。。
试试这个
SET NOCOUNT ON
SELECT
CASE WHEN MobileAreaCode is NOT NULL OR Mobile is NOT NULL THEN
MobileAreaCode+Mobile
END
FROM
TABLE_NAME
WHERE
id = 123456789
另一种方式
SET NOCOUNT ON
SELECT
CASE WHEN CONVERT(MobileAreaCode, int)>1 OR CONVERT(Mobile, int)>1 THEN MobileAreaCode+Mobile End
END
FROM
TABLE_NAME
WHERE
id = 123456789
使用ISNULL
SET NOCOUNT ON
SELECT
CASE WHEN NOT ISNULL(MobileAreaCode, 000) OR NOT ISNULL(Mobile, 000) THEN MobileAreaCode+Mobile End
END
FROM
TABLE_NAME
WHERE
id = 123456789
它对我不起作用我在列中得到某个数字的返回值,即使另一列的值为null抱歉,我的错误-某些值为空且不为null它起作用-但它返回0且不为null抱歉现在提出它,如果我想添加对空字符串的支持,请不要只添加MobileAreacCode“”或MobileAreacCode和MobileArCharMobileArCode以及MobileArCharMobileArCode和MobileArCharyMobileArCode。您还可以利用以下功能:使用ISNULL。但是,需要让您知道ISNULL与IS NULL之间的区别。。读到页面底部。我之前的评论不正确。。如果mobile和mobileAreacode是数字。。隐马尔可夫模型。。当CONVERT(MobileAreaCode,int)>1或CONVERT(Mobile,int)>1时,则为MobileAreaCode+Mobile End