MySQL CASE和RPAD问题

时间:2013-02-14 04:15:24

标签: mysql

我在下面有这个查询,它工作得很好。我只是无法弄清楚如何在val_4上使用RPAD函数。我尝试在CASE中使用RPAD,但它失败了。

SELECT RPAD(val_1,1,' '), RPAD(val_2,9,' '), RPAD(val_3,6,' '),
    (CASE val_4
        WHEN 'abc' THEN 'USEABLE'
        WHEN 'abcd' THEN 'USEABLE'
        WHEN 'abcde' THEN 'USEABLE'
        ELSE 'UNUSABLE'
    END)
FROM lists
INTO OUTFILE '/path/to/file'
FIELDS TERMINATED BY ''
LINES TERMINATED BY '\n';

1 个答案:

答案 0 :(得分:3)

包装整个案例:

SELECT RPAD(val_1,1,' '), RPAD(val_2,9,' '), RPAD(val_3,6,' '),
    RPAD(CASE val_4
        WHEN 'abc' THEN 'USEABLE'
        WHEN 'abcd' THEN 'USEABLE'
        WHEN 'abcde' THEN 'USABLE'
        ELSE 'abcdef'
    END, 6, ' ')
FROM lists
INTO OUTFILE '/path/to/file'
FIELDS TERMINATED BY ''
LINES TERMINATED BY '\n';

SQL Fiddle example


或者,仅包装val_4

的值
SELECT RPAD(val_1,1,' '), RPAD(val_2,9,' '), RPAD(val_3,6,' '),
    CASE RPAD(val_4,4,' ')
        WHEN 'abc' THEN 'USEABLE'
        WHEN 'abcd' THEN 'USEABLE'
        WHEN 'abcde' THEN 'USABLE'
        ELSE 'abcdef'
    END
FROM lists
INTO OUTFILE '/path/to/file'
FIELDS TERMINATED BY ''
LINES TERMINATED BY '\n';

SQL Fiddle example