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

जहां क्लॉज में अस्थायी कॉलम का उपयोग नहीं किया जा सकता है?

एक समाधान यह होगा कि पूरे विवरण का उप-चयन किया जाए, इसके परिणाम पर जहां खंड लागू किया जाए

select  *
from    (
          select  cast(de.ApprovalOrder AS VARCHAR(32)) 
                  + cast(de.EntityCode AS VARCHAR(32)) 
                  + isnull(cast(de.DelegationCode AS VARCHAR(32)), '') as 'RowID'
                  , *
          from    workflow.delegation_engine de
        ) de 
where   de.RowID IS NOT NULL

एक अन्य उपाय यह हो सकता है कि WHERE क्लॉज में पूरे क्लॉज को दोहराया जाए

select  cast(de.ApprovalOrder AS VARCHAR(32)) 
        + cast(de.EntityCode AS VARCHAR(32)) 
        + isnull(cast(de.DelegationCode AS VARCHAR(32)), '') as 'RowID' ,
        *
from    workflow.delegation_engine de
where   cast(de.ApprovalOrder AS VARCHAR(32)) 
        + cast(de.EntityCode AS VARCHAR(32)) 
        + isnull(cast(de.DelegationCode AS VARCHAR(32)), '') IS NOT NULL

या आप NULL के लिए प्रत्येक व्यक्तिगत फ़ील्ड का परीक्षण कर सकते हैं

select  cast(de.ApprovalOrder AS VARCHAR(32)) 
        + cast(de.EntityCode AS VARCHAR(32)) 
        + isnull(cast(de.DelegationCode AS VARCHAR(32)), '') as 'RowID' ,
        *
from    workflow.delegation_engine de
where   de.ApprovalOrder IS NOT NULL
        AND de.EntityCode IS NOT NULL



  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. TSQL:ट्रिगर में ट्राइ-कैच ट्रांजैक्शन

  3. किसी फ़ंक्शन के भीतर से अस्थायी तालिकाओं तक नहीं पहुंच सकता

  4. छँटाई में NULL की स्थिति बदलना

  5. आल्टर स्टेटमेंट का उपयोग करके SQL सर्वर में तालिका को कैसे बदलें - SQL सर्वर / T-SQL ट्यूटोरियल भाग 35