2

私は単純なタスクを達成しようとしています:テーブルの2つの列から値を選択します。

値の 1 つが 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

助けていただければ幸いです

4

2 に答える 2

3

後で確認できるように、選択した値を 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ない場合は必要に応じて適応すると仮定しました。

于 2013-09-18T08:19:33.030 に答える
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
于 2013-09-18T08:38:09.650 に答える