我正在尝试实现简单的任务:从表格中的2列中选择值。
如果其中一个值为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+Mobile)
END
帮助将不胜感激
答案 0 :(得分:2)
您需要将您选择的值存储到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
- 如果没有,请改编为需要的。
答案 1 :(得分:0)
根据你对我的评论,这就是你要找的东西:
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