sql - '<' के पास गलत सिंटैक्स




sql-server sql-server-2012 sql-server-2008-r2 iif (2)

SQL Server 2008 R2 पर काम करने के लिए SQL Server 2012 पर ठीक से काम कर रहा है जो कुछ कोड प्राप्त करने के लिए मेरे पास एक कार्य है मुझे यह त्रुटि मिली:

अतिरिक्त जानकारी: '' के पास गलत वाक्यविन्यास

जब मैं अपना कोड चलाने की कोशिश करता हूं तो मुझे पता चला कि मेरे एसक्यूएल कोड की इस पंक्ति में कुछ गलत है

ALTER TABLE [dbo].[WorkTimeEntries] 
  ADD [TimeFinishedForRuntime] AS ISNULL([TimeFinished],
        IIF ([TimeStarted] < SYSUTCDATETIME(), [dbo].[udf_GetCurrentDateTimeOffsetInTimeZone](DATENAME(TZOFFSET, [TimeStarted])), [TimeStarted]));

मैंने पढ़ा है कि जब लोग तिथि लेने की कोशिश करते हैं तो इस मामले में किसी प्रकार की गलती हुई, लेकिन मुझे यकीन नहीं है कि मेरे मामले में क्या गलत है।


Answers

SQL सर्वर 2008R2 में कोई IIF नहीं था

इसे CASE साथ बदलें

ALTER TABLE [dbo].[WorkTimeEntries] ADD [TimeFinishedForRuntime] AS ISNULL(
    [TimeFinished],
    CASE WHEN [TimeStarted] < SYSUTCDATETIME() THEN [dbo].[udf_GetCurrentDateTimeOffsetInTimeZone](DATENAME(TZOFFSET, [TimeStarted])) ELSE [TimeStarted] END);

मुझे लगता है कि ओरेकल का जवाब अभी भी गायब है, इसलिए यहां यह है:

SQL> with yourTable as
  2  ( select 1 yourColumn from dual union all
  3    select 2 from dual union all
  4    select 4 from dual union all
  5    select 8 from dual
  6  )
  7  select EXP(SUM(LN(yourColumn))) As ColumnProduct from yourTable
  8  /

COLUMNPRODUCT
-------------
           64

1 row selected.

सादर,
रोब।





sql sql-server sql-server-2012 sql-server-2008-r2 iif