检查长度并添加相应的列

时间:2014-07-07 05:40:16

标签: sql sql-server

我有两列的表。根据一列中数据的长度,我需要加入下一列。我该如何处理这个问题。我有基础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

3 个答案:

答案 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;