首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >算术溢出nvarchar

算术溢出nvarchar
EN

Stack Overflow用户
提问于 2020-12-04 06:09:44
回答 1查看 170关注 0票数 0

我有张桌子:

代码语言:javascript
复制
CREATE TABLE [dbo].[TABLE]
(
    [ID] [int] IDENTITY(1,1) NOT NULL,
    [CHARG] [nchar](255) NOT NULL,
    [MATNR] [nchar](30) NOT NULL,
    [VLTYP] [nchar](30) NOT NULL,
    [VLPLA] [nchar](30) NOT NULL,
    [NLTYP] [nchar](30) NOT NULL,
    [NLPLA] [nchar](30) NOT NULL,
    [BDATU] [nchar](30) NOT NULL,
    [DATES] [nchar](30) NOT NULL,
    [TIMES] [nchar](30) NOT NULL,
    [TIMESTAMP] [datetime] NOT NULL,
)

我使用这个SQL查询:

代码语言:javascript
复制
SELECT * 
FROM 
    (SELECT 
         [ID], [CHARG], [MATNR], [VLTYP], [VLPLA],
         [NLTYP], [NLPLA], [BDATU], [DATES], 
         [TIMES], [TIMESTAMP],
         RANK() OVER (PARTITION BY NLPLA ORDER BY timestamp DESC) AS lastN,
         CASE WHEN NLPLA ='X-X-1' THEN (CAST(NLPLA as nchar(6))+'-'+(CAST(RANK() OVER (PARTITION BY NLPLA ORDER BY TIMESTAMP desc )as nchar(3))))
            ELSE (CAST(NLPLA as nchar(6))+'-'+(CAST(RANK() OVER (PARTITION BY NLPLA ORDER BY TIMESTAMP ASC)as nchar(3)))) End as LINESKATE,
         CASE  WHEN NLPLA = 'X-X-1' THEN 'X-X-1'
        WHEN MATNR <> FIRST_VALUE(MATNR) OVER (PARTITION BY NLPLA ORDER BY timestamp) AND NLPLA !='X-X-1'
            THEN 'WRONG'
        WHEN NLPLA LIKE 'DIFF%' THEN 'Different'
        WHEN TIMESTAMP = LAST_VALUE(TIMESTAMP) over (partition by MATNR order by timestamp ROWS BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING) AND NLPLA !='X-X-1'
             THEN 'LAST'
        ELSE 'RIGHT' 
        END as status_text
     FROM [DB].[dbo].[TABLE]
)t
WHERE (NLPLA = 'X-X-1' AND lastN <= 6) OR (NLPLA !='X-X-1')

我有时会收到一条错误信息:

将表达式转换为数据类型nvarchar的

算术溢出错误。

例如,导致这种情况或以某种方式修改SQL查询的表设计有什么问题吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-04 06:23:54

在下面的转换中,您需要为NCHAR提供足够的长度。我想这个军衔已经超过999了。

代码语言:javascript
复制
 (CAST(NLPLA as nchar(6))+'-'+(CAST(RANK() OVER (PARTITION BY NLPLA ORDER BY TIMESTAMP ASC)as nchar(3)))) End as LINESKATE, -- you have defined NCHAR(3) here
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65138754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档