我有两列的表。根据一列中数据的长度,我需要加入下一列。我该如何处理这个问题。我有基础SQL,但我不能将列连接在一起,并将两个数据显示在一个表中。
目前的表格如下:
ID Code
---------- ----------
ST01 00
ST0105 05
ET2256 56
在SELECT QUERY之后,我想要
ID
----------
ST0100
ST0105
ET2256
正如您所看到的,当 ST01 小于5个字符时,我需要将Code列添加到其中。当ID的长度更多时,我不需要添加。我怎样才能实现。数据库正在生产中,我无法编辑,导致所有旧应用程序都已配置并正在运行。但我正在构建的应用程序使用7字符格式。所以我不能编辑表格。我只需要做一个select语句。
SELECT
CASE ID
WHEN ((LEN(ID))<>5) THEN ID=(RTRIM(ID)+LTRIM(Code))
FROM tblID
ORDER BY ID DESC
答案 0 :(得分:0)
根据您的解释,我猜测:
SELECT
CASE
WHEN ((LEN(ID))<5) THEN (RTRIM(ID)+LTRIM(Code)) ELSE ID END AS ID
FROM tblID
ORDER BY ID DESC
CASE
的语法略有不同,以及长度比较(<>5
与<5
)。
答案 1 :(得分:0)
试试这个:
SELECT
CASE
WHEN LEN(ID) < 6 THEN LEFT(ID + Code),6)
ELSE ID
END AS Code
FROM tblID
ORDER BY ID DESC;
答案 2 :(得分:-1)
试试这个:
SELECT
CASE
WHEN LEN(ID) <> 6 THEN SUBSTRING(ID, 1, 6-LEN(Code)) + Code
ELSE ID
END as Code
FROM tblID
ORDER BY ID DESC;