SQL SELECT متعدد الأعمدة في متغير متعدد
-
20-09-2019 - |
سؤال
أقوم بتحويل SQL من Teradata إلى SQL Server
في Teradata، لديهم الشكل
SELECT col1, col2
FROM table1
INTO @variable1, @variable2
في SQL Server، وجدت
SET @variable1 = (
SELECT col1
FROM table1
);
هذا يسمح فقط بعمود/متغير واحد لكل عبارة.كيفية تعيين متغيرين أو أكثر باستخدام عبارة SELECT واحدة؟
المحلول
SELECT @variable1 = col1, @variable2 = col2
FROM table1
نصائح أخرى
SELECT @var = col1,
@var2 = col2
FROM Table
فيما يلي بعض المعلومات المثيرة للاهتمام حول SET / SELECT
- SET هو معيار ANSI لتعيين المتغير، SELECT ليس كذلك.
- يمكن لـ SET تعيين متغير واحد فقط في وقت واحد ، يمكن SELECT إجراء مهام متعددة في وقت واحد.
- في حالة التعيين من استعلام، يمكن لـ SET تعيين قيمة عددية فقط.إذا قام الاستعلام بإرجاع قيم/صفوف متعددة ، فسيرفع تعيين خطأ.سيقوم SELECT بتعيين إحدى القيم للمتغير وإخفاء حقيقة أنه تم إرجاع قيم متعددة (لذلك من المحتمل ألا تعرف أبدًا سبب حدوث خطأ ما في مكان آخر - يمكنك الاستكشاف في استكشاف الأخطاء وإصلاحها)
- عند التعيين من استعلام إذا لم يتم إرجاع أي قيمة ، سيتم تعيين تعيين NULL ، حيث لن يقوم SELECT بإجراء المهمة على الإطلاق (لذلك لن يتم تغيير المتغير من القيمة السابقة)
- بقدر فروق السرعة - لا توجد اختلافات مباشرة بين المجموعة واختيار.ومع ذلك ، فإن قدرة SELECT على إجراء مهام متعددة في طلقة واحدة تمنحها ميزة سرعة بسيطة على المجموعة.
لا تنتمي إلى StackOverflow