簡體   English   中英

將 Microsoft SQL Server 特定查詢轉換為 ORACLE 特定查詢

[英]convert Microsoft SQL Server specific query to ORACLE specific query

大家好,我為 Microsoft SQL Server 編寫了以下查詢。 我需要將此查詢轉換為 Oracle 語法。 我對 Oracle 語法一無所知。 我需要你的幫助來使這個查詢在 Oracle 數據庫上工作。 我嘗試了很多方法,但沒有返回數據。

    SELECT SISPREV_student.Stu_Id, SISPREV_student.CwId,
 SISPREV_student.Sex, SISPREV_student.Nok_Name, SISPREV_student.Nok2_Name, 
              SISPREV_student.Birth_Dt,
 SISPREV_student.Currently_Enrolled, SISPREV_student.Stu_Athlete, SISPREV_student.LivingOnCampus, 
              SISPREV_student.ImmigrationStatus,
 SISPREV_student.ScholarStatus, SISPREV_student.Stu_FirstName, SISPREV_student.Stu_MiddleName,

              SISPREV_student.Stu_LastName, SISPREV_student.Ethnicity
FROM         SISPREV_address RIGHT OUTER JOIN
                      SISPREV_student ON SISPREV_address.StudentID =
 SISPREV_student.Stu_Id LEFT OUTER JOIN
                      SISPREV_email ON SISPREV_student.Stu_Id =
 SISPREV_email.StudentID LEFT OUTER JOIN
                      SISPREV_phone ON SISPREV_student.Stu_Id =
 SISPREV_phone.StudentID
WHERE ((SISPREV_student.Stu_Id LIKE '%' + '@StudentId' + '%') OR
 ('@StudentId' = '')) AND
      ((UPPER(SISPREV_student.Stu_FirstName) LIKE '%' +
 UPPER('@StudentFirstName') + '%') OR ('@StudentFirstName' = '')) AND
      ((UPPER(SISPREV_student.Stu_MiddleName) =
 UPPER('@StudentMiddleName')) OR ('@StudentMiddleName' = '')) AND
      ((UPPER(SISPREV_student.Stu_LastName) LIKE '%' +
 UPPER('@StudentLastName') + '%') OR ('@StudentLastName' = '')) AND
      ((UPPER(SISPREV_student.Nok_Name) LIKE '%' +
 UPPER('@StudentNextOfKinName') + '%') OR ('@StudentNextOfKinName' = '')) AND 
      ((UPPER(SISPREV_address.Street) LIKE '%' + UPPER('@StudentStreet') +
 '%') OR ('@StudentStreet' = '')) AND
      ((UPPER(SISPREV_address.City) LIKE '%' + UPPER('@StudentCity') +
 '%') OR ('@StudentCity' = '')) AND
      ((UPPER(SISPREV_address.State) LIKE '%' + UPPER('@StudentState') +
 '%') OR ('@StudentState' = '')) AND
      ((UPPER(SISPREV_address.ZipCode) LIKE '%' + '@StudentZipCode' + '%'
 ) OR ('@StudentZipCode' = '')) AND
      ((SISPREV_student.Birth_Dt = CONVERT(SMALLDATETIME,'@StudentBirthDay')) OR ('@StudentBirthDay' = '')) AND 
      ((SISPREV_phone.Phone = '@StudentPhoneNumber') OR
 ('@StudentPhoneNumber' = '')) AND
      ((UPPER(SISPREV_student.Sex) = UPPER('@StudentGender')) OR
 ('@StudentGender' = ''))
GROUP BY SISPREV_student.Stu_Id, SISPREV_student.CwId,
 SISPREV_student.Sex, SISPREV_student.Nok_Name, SISPREV_student.Nok2_Name, 
              SISPREV_student.Birth_Dt,
 SISPREV_student.Currently_Enrolled, SISPREV_student.Stu_Athlete, SISPREV_student.LivingOnCampus, 
              SISPREV_student.ImmigrationStatus,
 SISPREV_student.ScholarStatus, SISPREV_student.Stu_FirstName, SISPREV_student.Stu_MiddleName,

              SISPREV_student.Stu_LastName, SISPREV_student.Ethnicity

需要更改以下內容:

((upper(sisprev_address.street) like '%' + upper('@StudentStreet') + '%')

在 Oracle || 是串聯不是 +

((upper(sisprev_address.street) like '%' || upper('@StudentStreet') || '%') or ('@StudentStreet' = ''))

如果@StudentStreet 來自用戶輸入並且可以為空,您可以在 Oracle 中將其檢查為

or ('@StudentStreet' is null)

日期:

convert(smalldatetime, '@StudentBirthDay')

取決於您接收日期字符串的方式

to_date('@StudentBirthDay','some date format')

'some date format' ='DD-MM-YYYY' 或您處理的任何格式。 查找 Oracle 數據格式字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM