1

助けてください

電話番号が null または 0 の場合に取得したい場合は、携帯電話番号を選択し、携帯電話番号も 0 または null の場合は 0 を選択します

DECLARE 
    @phoneNumber varchar(MAX),
    @nReservationID varchar(MAX)


SELECT 
    @phoneNumber = 
       (CASE 
             WHEN ISNULL(RDG.nPhoneNumber  ,'') IN ('0','-',NULL)  
             THEN ISNULL(RDG.nMobileNumber, '0')  
             WHEN ISNULL(RDG.nMobileNumber, '0')  IN ('0','-',NULL)  
             THEN '0' 
             ELSE ISNULL(rdg.nPhoneNumber  ,'0')  END)
FROM tblReservation_Details_Guest RDG 
WHERE RDG.nReservationID = @nReservationID
4

2 に答える 2

4

あなたが欲しいだけのように聞こえCOALESCEますNULLIF

COALESCE(NULLIF(RDG.nPhoneNumber,'0'),NULLIF(RDG.nMobileNumber,'0'),'0')

COALESCE最初の非 NULL 式を返します。NULLIFNULL、2 つの引数が一致する場合に戻ります。一致しない場合は、最初の引数を返します。

したがって、COALESCE最初の式はNULLif RDG.nPhoneNumberis eitherNULLまたはになり'0'ます。そして、その 2 番目の式はNULLif RDG.nMobileNumberis eitherNULLまたはになり'0'ます。

于 2013-03-26T08:10:50.050 に答える
0

申し訳ありませんが、何もうまくいきませんでした....しかし、これが私が見つけた答えでした

DECLARE @phoneNumber VARCHAR(MAX)
SELECT 
@phoneNumber =

(CASE WHEN RDG.nPhoneNumber IN ('0','-',NULL)
THEN RDG.nMobileNumber
WHEN RDG.nMobileNumber IN('0','-',NULL)
THEN 
RDG.nPhoneNumber
ELSE '0'
END)
FROM tblReservation_Details_Guest RDG where RDG.nReservationID=783689



SELECT
@phoneNumber as 'Phone number'

返信と努力を示してくれてありがとう:)

于 2013-03-26T09:49:04.403 に答える