我可以用其他方式编写以下查询吗?
ALTER PROC Proc_AssetManagement_SubscriptionCheck @IMEINumber NVARCHAR(100)
,@PhoneNo NVARCHAR(200)
,@SIMNo NVARCHAR(100)
,@Id INT
,@Message NVARCHAR(MAX) OUTPUT
AS
BEGIN
DECLARE @SimMessage NVARCHAR(200) = ''
DECLARE @PhoneMessage NVARCHAR(200) = ''
SET @Message = ''
SELECT @Message = (
CASE
WHEN COUNT(IMEINumber) > 0
THEN ('IMEI Already Exists\n')
ELSE ' '
END
)
FROM tblAssetSubscriptionDetails
WHERE AssetMgmtId <> @Id
AND (IMEINumber = @IMEINumber)
SELECT @PhoneMessage = (
CASE
WHEN COUNT(PhoneNo) > 0
THEN ('PhoneNo Already Exists\n')
ELSE ' '
END
)
FROM tblAssetSubscriptionDetails
WHERE AssetMgmtId <> @Id
AND (PhoneNo = @PhoneNo)
SELECT @SimMessage = (
CASE
WHEN COUNT(SimNo) > 0
THEN ('SimNo Already Exists')
ELSE ' '
END
)
FROM tblAssetSubscriptionDetails
WHERE AssetMgmtId <> @Id
AND (SIMNo = @SIMNo)
SET @Message = @Message + '' + @PhoneMessage + '' + @SimMessage
END
我想减少查询的数量,并希望在单个查询而不是 3 个不同的查询中获取消息。我可以做吗?如果是,那怎么办?我的目的是我想得到这样的消息。
如果在表中找到 IMEINumber,那么它将显示 IMEI 号码已经存在。如果在表格中找到 SIM 号和 IMEI 号,则显示 IMEI 号已存在\nSIM 号已存在,依此类推...