Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

WHERE क्लॉज में कॉलम एलियास का जिक्र करते हुए

SELECT
   logcount, logUserID, maxlogtm,
   DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
FROM statslogsummary
WHERE ( DATEDIFF(day, maxlogtm, GETDATE() > 120)

आम तौर पर आप WHERE . में फ़ील्ड उपनामों का उल्लेख नहीं कर सकते हैं खंड। (इसे संपूर्ण SELECT के रूप में सोचें उपनाम सहित, WHERE . के बाद लागू किया जाता है खंड।)

लेकिन, जैसा कि अन्य उत्तरों में बताया गया है, आप SQL को SELECT . के इलाज के लिए बाध्य कर सकते हैं WHERE . से पहले संभाला जाना है खंड। यह आमतौर पर संचालन के तार्किक क्रम या सामान्य तालिका अभिव्यक्ति (सीटीई) के साथ मजबूर करने के लिए कोष्ठक के साथ किया जाता है:

कोष्ठक/उप-चयन:

SELECT
   *
FROM
(
   SELECT
      logcount, logUserID, maxlogtm,
      DATEDIFF(day, maxlogtm, GETDATE()) AS daysdiff
   FROM statslogsummary   
) as innerTable
WHERE daysdiff > 120

या उसी के सीटीई संस्करण के लिए एडम का जवाब देखें।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. मैं SQL सर्वर में ऑटो वृद्धि मूल्य के साथ स्ट्रिंग कैसे जोड़ूं?

  2. SQL सर्वर में लिंक किए गए सर्वर से तालिकाओं की सूची लौटाएं (T-SQL उदाहरण)

  3. मैं एक स्ट्रिंग को कैसे विभाजित करूं ताकि मैं आइटम x तक पहुंच सकूं?

  4. कैसे जांचें कि SQL सर्वर में कोई डेटाबेस मौजूद है या नहीं?

  5. क्वेरी कोड में बहुत धीमी लेकिन SSMS में तेज़ है