AMcoder - javascript, python, java, html, php, sql

SQL Server if Statement ›=

Սրանք հարցերն են.

Գրեք մի սցենար, որը ձեզ կտա արդյունքի վեց սյունակ:

ա) հաճախորդի անունը
բ) հաճախորդի ազգանունը
գ) պատվերի համարը
դ) ապրանքի անվանումը
ե) զեղչը
զ) սյունակը զեղչի համար հետևյալ բառերով---- կամ ՈՉ ՄԵԿ, ՔՍԱՆԻՑ ՊԱԿԱՍ, ՔԱՌԱՍՈՒՆԻՑ ՊԱԿԱՍ, կամ ՔԱՌԱՍՈՒՆԻՑ ԱՎԵԼԻ

Ես արել եմ սա.

SELECT 
    Customers.FirstName,
    Customers.LastName,
    Orders.OrderID,
    Products.ProductName,
    OrderItems.DiscountAmount,
    IF(OrderItems.DiscountAmount = 0, 'NONE', IF(OrderItems.DiscountAmount <= 20, 'LESS THAN TWENTY', IF(OrderItems.DiscountAmount <= 40, 'LESS THAN FORTY', 'MORE THAN FORTY'))) AS discount
FROM 
    Customers
INNER JOIN 
    Orders ON (Customers.ShippingAddressID = Orders.ShipAddressID 
           AND Customers.BillingAddressID = Orders.BillingAddressID)
INNER JOIN 
    OrderItems ON (Orders.OrderID = OrderItems.OrderID)
INNER JOIN 
    Products ON (OrderItems.ProductID = Products.ProductID)

Դա ինձ սխալ է տալիս իմ if հայտարարության վրա: Տեսնես ինչ եմ սխալ անում։

Սա այն տվյալների բազան է, որը ես օգտագործում եմ.

մուտքագրեք պատկերի նկարագրությունը այստեղ

Սխալի հաղորդագրություններ.

Msg 156, Level 15, State 1, Line 6
Սխալ շարահյուսություն «IF» հիմնաբառի մոտ:

Msg 102, Level 15, State 1, Line 6
Սխալ շարահյուսություն ','-ի մոտ:

Msg 102, Level 15, State 1, Line 6
Սխալ շարահյուսություն ','-ի մոտ:

Msg 102, Level 15, State 1, Line 6
Սխալ շարահյուսություն ','-ի մոտ:


  • Ցույց տալ սխալի հաղորդագրությունը 11.10.2015
  • Ոչ, ոչ ոչ @JohnConde, իրականում հասկանալը, թե ինչ է կատարվում, խլում է ամբողջ զվարճանքը: 11.10.2015
  • Սխալի հաղորդագրությունը (և սքրինշոթը) հուշում է, որ դուք օգտագործում եք MS SQL Server, այլ ոչ MySQL: Համապատասխանաբար վերագրել եմ: 11.10.2015
  • Եթե ​​սա իսկապես MSSQL հարց է դուք ընդհանրապես չեք կարդացել IF հրամանի շարահյուսությունը:: 11.10.2015
  • @NielsKeurentjes. դա IF հայտարարության համար է, ոչ թե արտահայտության, որը OP-ն փորձում է օգտագործել այստեղ: 11.10.2015
  • @siride, իմ գիտելիքներով, MSSQL-ը չունի IF արտահայտություն, այլ IIF արտահայտություն: 11.10.2015
  • IF-ի փոխարեն IF-ի փոխարեն IIF ավելացնելով բոլոր IF-ի վրա խնդիրը լուծում է: Կամ CASE հայտարարությունը: Շնորհակալություն 11.10.2015
  • @NielsKeurentjes. 2012 և ավելի ուշ ունեն IIF: Անկախ նրանից, թե MSSQL ունի այն, թե ոչ, OP-ն ակնհայտորեն փորձում էր իրականացնել արտահայտությունը։ 11.10.2015
  • @siride դա իմ նպատակը չէր, ես մատնանշում էի, որ նա չի կարդացել ձեռնարկը 5 վայրկյան, նախքան շատ ավելի երկար ծախսել այստեղ հարց մուտքագրելու վրա: 12.10.2015

Պատասխանները:


1

Ձեր տվյալների բազայի դիագրամը և սխալները հուշում են, որ դուք օգտագործում եք Microsoft SQL Server-ը, ոչ թե MySQL-ը: IF հրամանը/արտահայտությունը/հիմնաբառը ստանդարտացված չէ և իրականացվում է տարբեր հարթակներում:

Հետևաբար, դուք չպետք է օգտագործեք MySQL սեփական IF-շարահյուսություն< /a> բայց MSSQL սեփական IIF-շարահյուսություն: IFcontrol-of-flow հայտարարություն է MSSQL-ում:

11.10.2015

2

Սա SQL Server-ն է: if հայտարարություն չկա: Օգտագործեք case:

(CASE WHEN OrderItems.DiscountAmount = 0 THEN 'NONE'
      WHEN OrderItems.DiscountAmount <= 20 THEN 'LESS THAN TWENTY'
      WHEN OrderItems.DiscountAmount <= 40 THEN 'LESS THAN FORTY'
      ELSE 'MORE THAN FORTY'
 END) AS discount
11.10.2015
  • Փակագծերը լավ են: 11.10.2015

  • 3

    Այստեղ օգտագործեք «case..when» արտահայտությունը: Օգտագործման հղումն այստեղ՝ գործի հայտարարություն

    Case 
        when OrderItems.DiscountAmount = 0 then 'NONE' 
        when OrderItems.DiscountAmount <= 20 then 'LESS THAN TWENTY' 
        when OrderItems.DiscountAmount <= 40 then 'LESS THAN FORTY' 
        else 'MORE THAN FORTY' 
    End AS discount
    
    11.10.2015
  • Եթե ​​դեմ եք քվեարկելու, խնդրում ենք ավելացնել մեկնաբանություն՝ պատասխանը բարելավելու համար: 11.10.2015
  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..