سؤال

وأريد أن إنشاء حدد SQL للقيام وحدة الاختبار في MS SQL خادم 2005. والفكرة الأساسية هي هذه:

واختر 'اسم اختبار'، فو = 'نتيجة' من شريط حيث الباز = (بعض المعايير)

وكانت الفكرة هي أنه إذا كان قيمة العمود "فو" هو "النتيجة"، ثم كنت الحصول على قيمة صحيح / 1؛ إذا لم يكن، فما استقاموا لكم فاستقيموا الحصول كاذبة / 0.

ومما يؤسف له، T-SQL لا يحب التعبير. كان يغص بها على علامة التساوي.

هل هناك طريقة لتقييم تعبير في قائمة تحديد SQL والحصول على نتيجة إرجاع؟ (أو بطريقة أخرى لتحقيق وحدة الاختبار الذي أريد؟)


وتحرير: 3 كبيرة، اجابات، كل تتمحور حول القضية. سوف أقبل على feihtthief كما انه حصل على أقل مندوب وبالتالي يحتاج إليها أكثر من غيرها. :-) شكرا للجميع.

هل كانت مفيدة؟

المحلول

استخدم حالة بناء:

select 'Test Name', 
    case when foo = 'Result' then 1 else 0 end 
    from bar where baz = (some criteria)

وانظر أيضا في MSDN SQL للعمليات التوثيق حالة .

نصائح أخرى

SELECT 'TestName', 
    CASE WHEN Foo = 'Result' THEN 1 ELSE 0 END AS TestResult
FROM bar 
WHERE baz = @Criteria

استخدم كيس:

SELECT 'Test Name' [col1],
  CASE foo
    WHEN 'Result' THEN 1
    ELSE 0
  END AS [col2]
FROM bar
WHERE baz = (some criteria)

ويمكنك أيضا استخدام:

select 
    'Test Name', 
    iif(foo = 'Result', 1, 0)
from bar 
where baz = (some criteria)

وأنا أعلم أن هذه سئل في حين يعود، ولكن آمل أن يساعد هذا شخص هناك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top