Ads by Google
新しい記事を書く事で広告が消せます。
MS-OfficeのAccessで、SQL文にCASE文を使いたいシチュエーションがあったのですが「AccessにはCASE文がないので困ってしまいました」と言うお話です。
解っている人は解っている超しょぼいネタです。
やりたい事は、下記のようなTABLEで、「CLM2がNULLでなければCLM2の値を、NULLの場合はCLM1の値を返したい」ということです。
元テーブル【TBL_1】
| ID | CLM1 | CLM2 | NAME |
| 1 | a | A | NAME_A |
| 2 | b | (NULL) | NAME_B |
| 3 | c | C1 | NAME_C |
| ID | CLMX | NAME |
| 1 | A | NAME_A |
| 2 | b | NAME_B |
| 3 | C1 | NAME_C |
SELECT
A.ID,
(CASE WHEN A.CLM2 IS NOT NULL THEN A.CLM2 ELSE A.CLM1 END) CLMX,
A.NAME
FROM
TBL_1 AS A
;
SELECT
A.ID,
IsNULL(A.CLM2, A.CLM1) CLMX,
A.NAME
FROM
TBL_1 AS A
;
SELECT * FROM
(SELECT
A.ID, A.CLM2 CLMX, A.NAME
FROM
TBL_1 A
WHERE
A.CLM2 IS NOT NULL )
UNION ALL
SELECT * FROM
(SELECT
A.ID, A.CLM1 CLMX, A.NAME
FROM
TBL_1 A
WHERE
A.CLM2 IS NULL)
;
SELECT
A.ID,
IIF(IsNULL(A.CLM2),A.CLM1,A.CLM2) CLMX,
A.NAME
FROM
TBL_1 AS A
;
<< [その他]「ロケットまつり19」に行ってきました。 | うずまき の なんとなくでいいのかも?TOP | [お散歩]等々力渓谷に行ってきました。 >>
| このページの上へ |