ПЕРЕКЛЮЧАТЕЛЬ СЛУЧАЯ для MS ACCESS - PullRequest
0 голосов
/ 09 мая 2018

Я хочу спросить о случае выбора в мс доступа. из того, что я получаю для db2 Может кто-нибудь помочь изменить SQL для MS Access 2000

SELECT DISTINCT 

    CASE WHEN STORECODE='JPAT' THEN

        CASE WHEN PARTNO LIKE 'A%' THEN 

            ITEMNAME||'(NIV-'||SECTIONNO||')'

            WHEN PARTNO LIKE 'STSB%' THEN 

        ITEMNAME||' (NIV-'||SECTIONNO||')'

    ELSE

        ITEMNAME||'('||PARTNO||'-'||SECTIONNO||')'

    END

ELSE

ITEMNAME||'('||PARTNO||'-'||SECTIONNO||')'

END

    AS INPUTTEXT,

        IDX||':'||PARTNO||':'||BATCHNO||':'||ITEMTYPECODE||':'||TOOLTYPECODE||':'||ITEMCATEGORYCODE||':'||MATERIALTYPECODE||':'||SECTIONNO AS INPUTVAL

from ITEM  where idx > 0   and (storecode)='JPAT'

спасибо

1 Ответ

0 голосов
/ 09 мая 2018

В MS Access это будет выглядеть так:

SELECT DISTINCT 
       IIF(PARTNO LIKE 'A*', ITEMNAME & "(NIV-" & SECTIONNO & ")"
           IIF(PARTNO LIKE "STSB*", ITEMNAME & " (NIV-" & SECTIONNO & ")"
               ITEMNAME & "(" & PARTNO & "-" & SECTIONNO & ")"
              )
          ) AS INPUTTEXT,
    (IDX & ":" & PARTNO & ":" & BATCHNO & ":" & ITEMTYPECODE & ":" &
     TOOLTYPECODE & ":"& ITEMCATEGORYCODE & ":" & MATERIALTYPECODE &
      ":" & SECTIONNO
    ) AS INPUTVAL
FROM ITEM 
WHERE idx > 0 AND storecode = "JPAT";

Примечания:

  • Сравнение storecode = 'JPAT' не нужно в SELECT, потому что оно в WHERE.
  • Разделитель строк в MS Access - ", а не '.
  • Оператор конкатенации строк в MS Access: &.
  • Подстановочный знак в LIKE в MS Access равен *.
  • MS Access не поддерживает CASE. Я считаю, что IIF() достаточно для этого случая (каламбур).
...