最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

sql server - scientific notation value conversion to actual value - Stack Overflow

programmeradmin6浏览0评论

data storied in column1=1.28748e+006 datatype= varchar(100) Expected output - 1287482 Tried multiple solutions didn't work

I tried multile options it's round value. I want to get display as it is.

UPDATE dbo.testscientif
SET column1 = CASE
    WHEN CHARINDEX('e', LOWER(column1)) > 0 THEN
        CASE
            WHEN CAST(SUBSTRING(column1, CHARINDEX('e', LOWER(column1)) + 1, LEN(column1)) AS INT) >= 0 THEN
                CASE
                    WHEN CHARINDEX('.', LEFT(column1, CHARINDEX('e', LOWER(column1)) - 1)) > 0 THEN
                        CASE
                            WHEN CAST(SUBSTRING(column1, CHARINDEX('e', LOWER(column1)) + 1, LEN(column1)) AS INT) >= LEN(SUBSTRING(LEFT(column1, CHARINDEX('e', LOWER(column1)) - 1), CHARINDEX('.', LEFT(column1, CHARINDEX('e', LOWER(column1)) - 1)) + 1, LEN(LEFT(column1, CHARINDEX('e', LOWER(column1)) - 1)))) THEN
                                CAST(REPLACE(LEFT(column1, CHARINDEX('e', LOWER(column1)) - 1), '.', '') + REPLICATE('0', CAST(SUBSTRING(column1, CHARINDEX('e', LOWER(column1)) + 1, LEN(column1)) AS INT) - LEN(SUBSTRING(LEFT(column1, CHARINDEX('e', LOWER(column1)) - 1), CHARINDEX('.', LEFT(column1, CHARINDEX('e', LOWER(column1)) - 1)) + 1, LEN(LEFT(column1, CHARINDEX('e', LOWER(column1)) - 1))))) AS BIGINT)
                            ELSE
                                CAST(LEFT(REPLACE(LEFT(column1, CHARINDEX('e', LOWER(column1)) - 1), '.', ''), LEN(REPLACE(LEFT(column1, CHARINDEX('e', LOWER(column1)) - 1), '.', '')) - (LEN(SUBSTRING(LEFT(column1, CHARINDEX('e', LOWER(column1)) - 1), CHARINDEX('.', LEFT(column1, CHARINDEX('e', LOWER(column1)) - 1)) + 1, LEN(LEFT(column1, CHARINDEX('e', LOWER(column1)) - 1)))) - CAST(SUBSTRING(column1, CHARINDEX('e', LOWER(column1)) + 1, LEN(column1)) AS INT))) AS BIGINT)
                        END
                    ELSE
                        CAST(LEFT(column1, CHARINDEX('e', LOWER(column1)) - 1) + REPLICATE('0', CAST(SUBSTRING(column1, CHARINDEX('e', LOWER(column1)) + 1, LEN(column1)) AS INT)) AS BIGINT)
                END
            ELSE
                NULL
        END
    WHEN ISNUMERIC(column1) = 1 THEN
        CAST(column1 AS BIGINT)
    ELSE
        NULL
END
WHERE column1 IS NOT NULL;
发布评论

评论列表(0)

  1. 暂无评论