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

एसक्यूएल:गतिशील चर नाम

खैर, यह सुंदर नहीं है, लेकिन आप यह कर सकते हैं:

if @loopcntr = 1
    set var01 = 'somevalue'
else if @loopcntr = 2
    set var02 = 'whatever'
else if . . .

यह पर्याप्त रूप से अप्रिय होना चाहिए कि आप विकल्पों के बारे में सोच सकते हैं। ओह, यहाँ एक अच्छा है। तालिका चर परिभाषित करें और प्रत्येक मान के लिए केवल पंक्तियाँ जोड़ें:

declare @vars table (
    id int identity(1, 1),
    loopcntr int,
    value varchar(255)
);

. . .
-- inside the loop
    insert into @vars(loopcntr, value)
        select @loopcntr, 'whatever';

जब आप एक वैरिएबल प्राप्त करना चाहते हैं, तो आप यह कर सकते हैं:

declare @var varchar(255);
select @var = value from @vars where loopcntr = <the one I want>;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. ज्यामिति प्रकार से एक्स और वाई के साथ दृश्य उत्पन्न करें

  2. Microsoft SQL Server 2008 R2 के लिए अनुक्रमणिका ऑटोइनक्रिकमेंट

  3. क्रॉस डेटाबेस क्वेरी, फायदे और नुकसान को जोड़ती है

  4. एसक्यूएल सर्वर 2008 प्रबंधन स्टूडियो मेरी क्वेरी के सिंटैक्स की जांच नहीं कर रहा है

  5. एक कॉलम में अधिकतम मान वाली पंक्ति का चयन करें