Ich habe zwei Felder (@ EmployeeId, @ SSOId), aus dem ein Wert kommen kann oder beide kommen, aber wenn ich mich bewerbe oder der Zustand es nicht gibt mir korrekte Ausgabe. Was mache ich falsch?SQL WEDER AUF ZWEI SÄULEN
ALTER PROCEDURE [dbo].[usp_User_GetDetails] (
@UserId INT = NULL
,@ADSId NVARCHAR(32) = NULL
,@EmployeeId NVARCHAR(32) = NULL
,@SSOId NVARCHAR(32) = NULL
,@UserName NVARCHAR(100) = NULL
)
AS
*/
SET NOCOUNT ON;
BEGIN
SELECT [USER_ID] AS UserId
,[FIRST_NM] AS FirstName
,[LST_NM] AS LastName
,[FULL_NM] AS FullName
,[ADS_USER_ID] AS ADSId
,[SEG_ID] AS SegmentId
,[PHONE_NO] AS PhoneNo
,[FAX_NO] AS FaxNo
,[EMP_ID] AS EmployeeId
,[EMAIL_AD_TX] AS Email
,[SSO_ID] AS SSOId
,[SFDC_IN] AS IsSFDC
,[USER_SFDC_ID] AS UserSFDCId
,[MGR_SFDC_ID] AS ManagerSFDCId
,[ACT_IN] AS IsActive
,[SYS_USER_IN] AS IsSystemUser
,[PORFOLIO_OWN_IN] AS CanHavePortfolio
,[MGR_ID] AS ManagerId
,[LST_LOG_IN_TS] AS LastLoginDate
,[EMP_BAND_TX] AS Band
,[CREAT_TS] AS CreatedDate
,[CREAT_BY_USER_ID] AS CreatedBy
,[LST_UPDT_TS] AS UpdatedDate
,[LST_UPDT_BY_USER_ID] AS UpdatedBy
FROM [dbo].[USER] WITH (NOLOCK)
WHERE ([EMP_ID] = ISNULL(@EmployeeId, [EMP_ID])OR [SSO_ID] = ISNULL(@SSOId, [SSO_ID])
AND [ADS_USER_ID] = ISNULL(@ADSId, [ADS_USER_ID])
AND [USER_ID] = ISNULL(@UserId, [USER_ID])
AND [FULL_NM] LIKE CASE
WHEN @UserName IS NOT NULL
THEN '%' + @UserName + '%'
ELSE [FULL_NM]
END
END
Sind diese beiden Variablen die gleiche Art? – Mihai
Ja Mihai ...... – user662285
Ich schlage vor, Sie brechen diese auf einen kleinen Fall nach unten die Daten fehlschlägt. Parens stimmen nicht überein. – Paparazzi