如何根据长度拆分列

时间:2019-10-04 07:08:36

标签: sql ms-access sql-query-store

我有一个10列的表,如果列的值的长度为4,我想将一列分为两列,否则不进行拆分,对于其余值,应输入第一列。

column  Acolumn Bcolumn C

0000    00      00
1111   
1 1
000     000 
0115    01      15

2 个答案:

答案 0 :(得分:1)

您想在MS Access中有条件地做某事。这通常意味着IIF()SWITCH(),因为MS Access不支持标准的CASE表达式语法:

select t.column,
       iif(len(column) = 4, left(column, 2), column) as columnA,
       iif(len(column) = 4, right(column, 2), NULL) as columnB
from t;

尽管我不建议这样做,但您也可以使用union all

select t.column, t.column as columnA, NULL as columnB
from t
where len(column) <> 4
union all
select t.column, left(t.column, 2) as columnA, right(t.column, 2) as columnB
from t
where len(column) = 4;

答案 1 :(得分:0)

您可以在下面尝试-

select columnA, 
       case when len(columnA)=4 then left(columnA,2) end as columnB,
       case when len(columnA)=4 then mid(ColumnA,3,2) end as columnC
from tablename