SQL - 更改字母数字列的数据类型

时间:2016-02-23 20:44:09

标签: sql teradata

我在Teradata。我有一个ID列,如下所示:

23
34 
W7
007
021
90
GS8

我想将数字转换为数字,因此007应为7,而021为21.当一个数字存储为字符串时,我通常会column * 1转换为数字但在这种情况下它会给我一个坏的字符错误,因为那里有字母。

如何在查询中的select语句中执行此操作?

2 个答案:

答案 0 :(得分:1)

假设数值总是以数字开头,那么这样的东西应该起作用:

update t
     set col = (case when substr(col, 1, 1) between '0' and '9'
                     then cast(cast(col as int) as varchar(255))
                     else col
                end);

或者,您可以忘记转换并执行:

update t
    set col = trim(leading '0' from col);

注意:这两个都假设如果第一个字符是数字,则整个字符串包含数字。第二个假设值不是全零(或者更具体地说,返回空字符串)。

答案 1 :(得分:0)

只需使用- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { if ([segue.identifier isEqualToString:@"DetailDisplay"]) { DetailDisplayController *detailDisplayController = segue.destinationViewController; ... detailDisplayController.completionBlock = ^(BOOL saved, NSString *sorter, NSUInteger recordCount) { if (saved) ... ,当转换失败时返回NULL。