帮帮我PLZ
如果电话号码为空或0,我想得到,然后选择手机号码,如果手机号码也是0或空,则选择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
答案 0 :(得分:4)
COALESCE(NULLIF(RDG.nPhoneNumber,'0'),NULLIF(RDG.nMobileNumber,'0'),'0')
COALESCE
返回第一个非NULL表达式。如果NULLIF
的两个参数匹配,NULL
将返回COALESCE
,否则返回其第一个参数。
如果NULL
为RDG.nPhoneNumber
或NULL
,则'0'
的第一个表达式为NULL
。如果RDG.nMobileNumber
为NULL
或'0'
,则其第二个表达式为{{1}}。
答案 1 :(得分: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'
感谢您的回复和展示努力:)