2008-11-20 16 views
9

मैं एक एसक्यूएल कथन से निरंतर कैसे लौटा सकता हूं?आप एक एसक्यूएल कथन से निरंतर कैसे लौटते हैं?

उदाहरण के लिए मैं कैसे नीचे कोड बदल जाएगा तो "मेरा संदेश" अगर मेरे (बूलियन अभिव्यक्ति) सच

if (my boolean expression) 
"my message" 
else 
select top 1 name from people; 

मैं उपयोग कर रहा हूँ एमएस एसक्यूएल 2000

उत्तर

17

क्या आप कोशिश थी वापसी होगी:

select 'my message'; 
+0

आप अन्य शर्त से मेल खाने के लिए फ़ील्ड नाम शामिल करना चाहेंगे। – BoltBait

+1

यह स्थिति को छोड़ने लगता है? –

4

मेरे पास एमएसएसएलएल आसान नहीं है, लेकिन अगर मुझे यह गलत लगता है तो केस स्टेटमेंट के लिए वाक्यविन्यास की जांच करें और मुझे यकीन नहीं है कि शीर्ष 1 को मामले के बाहर जाना चाहिए या नहीं, जैसा कि मैंने इसे यहां रखा है या अगर यह अंदर जाना चाहिए (ईएलएसई टॉप 1 नाम)। विचार है:

SELECT TOP 1 CASE WHEN myexpression = 'true' THEN 'my message' ELSE name END 
FROM people; 

यहाँ myexpression उदाहरण

CASE WHEN address LIKE '%Michigan%' 

जहां पता तालिका लोगों में एक और क्षेत्र है के लिए, या तो स्थिरांक या क्वेरी में मौजूद तालिकाओं से संबंधित हो गया है।

पुनश्च: मिले MSSQL मामला वाक्य रचना here :-)

4
select "my message" as message 
+0

यह स्थिति को छोड़ देता है? –

+0

सवाल यह नहीं था कि इसे सशर्त रूप से कैसे किया जाए। :) – Kon

0

मैं सिर्फ AdventureWorks डेटाबेस पर इस की कोशिश की और यह एक बयान में

Use AdventureWorks 

Declare @myVar int 
SET @myVar = 1 

if (@myVar = 2) 

    select top 2 * from HumanResources.Department 

else 

    select top 1 * from HumanResources.Department 
0
select top 1 name 
from people 
where @MyParameter = whatever 

union 

select 'my message' as name 
where @MyParameter != whatever 

सभी काम करता है।

संबंधित मुद्दे