是否可以将单列的值拆分为两列,仅显示2个字符和4个字符,例如我有此查询:
SELECT colA FROM TableA
返回:
+ colA +
+------+
+ valA +
+ valB +
+ va +
+ vc +
+ +
+ valC +
所以我期待的结果是:
+ colA + colWith2Char+ colwith4Char +
+------+-------------+--------------+
+ valA + + valA +
+ valB + + valB +
+ va + va + +
+ vc + vc + +
+ + + +
+ valC + + valC +
我尝试使用char_length但是有更好的方法可以轻松获得此输出吗?
提前感谢建议的任何解决方案。
答案 0 :(得分:0)
只需使用IF语句根据长度有条件地提取值。
SELECT colA,
IF(LENGTH(colA) = 2, colA, NULL) AS colWith2Char,
IF(LENGTH(colA) = 4, colA, NULL) AS colWith4Char
FROM TableA;
注意:您也可以使用更标准的CASE语句执行此操作,但它更冗长。
SELECT colA,
CASE WHEN LENGTH(colA) = 2 THEN colA ELSE NULL END AS colWith2Char,
CASE WHEN LENGTH(colA) = 4 THEN colA ELSE NULL END AS colWith4Char
FROM TableA;