sql server 2005 - Dynamic order by without using dynamic sql? -


मेरे पास निम्न संग्रही कार्यप्रणाली है जो कि टेम्पलेट नाम, निर्मित और अपलोड किए गए पर आरोही और अवरुद्ध हो सकती है। निम्न सपा जब कोई रन नहीं करता है तो रिकॉर्ड करता है। यदि मैं कॉलम के नाम से 2,3,4 की जगह लेता हूं, तो मुझे एक त्रुटि संदेश मिला "nvarchar मान 'टेस्ट टेम्पलेट' डेटा प्रकार 'में कनवर्ट करते समय रूपांतरण विफल रहा।" कृपया सॉर्टिंग कैसे प्राप्त करें ।

  बनाएं प्रक्रिया [dbo] [usp_SEL_GetRenderingTemplate] (@facilityID INT, @sortOrder VARCHAR (5), @sortExpression VARCHAR (100), @errorCode INT उत्पादन) के रूप में सेट NOCOUNT पर शुरू। अब से 'डीईएससी' एलेक्स 'एएससी' का चयन करें टेम्पलेट आईडी, टेम्पलेट, नाम, बनाया गया, ([प्रयोक्ता] .नामनाम '' + [उपयोगकर्ता] .FirstName) टेम्पलेट्स भीतर से UploadedBy के रूप में [उपयोगकर्ता] पर [उपयोगकर्ता] .UserID = Templates.CreatedBy कहां facilityid = @facilityID में शामिल होने के मामले से जब @sortExpression = 'TemplateName' और @sortOrder = 'एएससी' फिर 2 जब @sortExpression = 'CreatedOn' और @sortOrder = 'एएससी' फिर 3 जब @sortExpression = 'UploadedBy' और @sortOrder = 'एएससी' फिर 4 अंत एएससी, मामला है जब @sortExpression = 'TemplateName' और @sortO rder = 'DESC' फिर 2 जब @sortExpression = 'CreatedOn' और @sortOrder = 'DESC' फिर 3 जब @sortExpression = 'UploadedBy' और @sortOrder = 'DESC' फिर 4 अंत DESC सेट @errorCode = 0 अंत पकड़ने शुरू की कोशिश SET @errorCode = 1 DECLARE @errorMsg के रूप में VARCHAR (MAX) DECLARE @tcDate एसेट डेटटाइम सेट @errorMsg = CAST (ERROR_MESSAGE () के रूप में VARCHAR (MAX)) SET @utcDate = CAST (GETUTCDATE () AS DATETIME) EXEC usp_INS_LogException 'usp_SEL_GetFacilityWorkTypeList ', @ आतंक संदेश, @ उकसीका अंत कैश एंड  

गतिशील आदेश होना चाहिए वही डेटाटाइप यहां कुछ ऐसी चीज का एक उदाहरण है जिसका उपयोग मैं तीन अलग-अलग आंकड़े-पूर्णांक, दिनांक (आरोही और अवरोही), और स्ट्रिंग के क्रम में करने के लिए करता हूं। यह आपकी स्थिति के लिए काम नहीं कर सकता है, लेकिन कम से कम आप एक आम डेटाटाइप के लिए कुछ तकनीकों को देख सकते हैं।

...

  केस माता-पिता द्वारा आदेश। रैंकटाइप आईडी 0 फिर dbo.Documents.Rank जब 1 तब (पूर्णांक, dbo.Documents.DateStart, 112) कन्वर्ट जब 2 तब (1 - कन्वर्ट (पूर्णांक, dbo.Documents.DateStart, 112)) जब 3 तब कास्ट (dbo.Documents। sql_variant के रूप में शीर्षक) समाप्ति  

नोट:।

112 YYYYMMDD की दिनांक स्वरूप है - आदेश देने के लिए उपयोगी


Comments

Popular posts from this blog

windows - Heroku throws SQLITE3 Read only exception -

lex - Building a lexical Analyzer in Java -

python - rename keys in a dictionary -