سؤال

لدينا عدد قليل من الجداول مع الأعمدة المحسوبة المستمرة في SQL Server.

هل هناك ما يعادل هذا في تيرااتا؟ وإذا كان الأمر كذلك، فما هو بناء الجملة وهل هناك أي قيود؟

أعمدة محسوبة معينة أنا أبحث عن مطابقة بعض أرقام الحسابات عن طريق إزالة الأصفار الرائدة - يتم إنشاء فهرس أيضا على رقم الحساب المشترك هذا:

ACCT_NUM_std AS ISNULL(CONVERT(varchar(39),
                               SUBSTRING(LTRIM(RTRIM([ACCT_NUM])),
                                         PATINDEX('%[^0]%',
                                                  LTRIM(RTRIM([ACCT_NUM])) + '.'
                                                 ),
                                         LEN(LTRIM(RTRIM([ACCT_NUM])))
                                        )
                              ),
                       ''
                      ) PERSISTED

مع وظيفة تقليم Teradata، سيكون جزء التشذيب أبسط قليلا:

ACCT_NUM_std AS COALESCE(CAST(TRIM(LEADING '0' FROM TRIM(BOTH FROM ACCT_NUM))) AS varchar(39)),
                         ''
                        )

أعتقد أنني يمكن أن تجعل هذا العمود العادي ووضع التعليمات البرمجية لتوحيد أرقام الحسابات في جميع العمليات التي تضافر في الجدول. فعلنا هذا لوضع رمز التوحيد في مكان واحد.

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

المحلول

بقدر ما تمكنت من تحديد، لا تدعم Teradata الأعمدة المحسوبة في الجداول.

اعتمدت استراتيجية وجود جميع إدراجات مختلفة استخدم نفس التعليمات البرمجية، مما أدى إلى ازدواجية رمز، لسوء الحظ.

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