下面是我的数据库的一个单元。

两者col1和COL2被声明为INT。

我ComputedColumn目前增加了列1和列2,如下...

col1  col2  ComputedColumn
1     2     3
4     1     5

取而代之的是,我的ComputedColumn应该加入列1和2(includimg的 ' - '字符在中间)如下...

col1  col2  ComputedColumn
1     2     1-2
4     1     4-1

那么,什么是正确的语法?

有帮助吗?

解决方案

你可能在定义计算列col1+col2。尝试CAST(col1 AS NVARCHAR(MAX))+'-'+CAST(col2 AS NVARCHAR(MAX))代替。

或者,如果你愿意,你可以用NVARCHAR(MAX)或不同长度您选择的替换NVARCHAR(10)

其他提示

create table TableName
(
    col1 int,
    col2 int,
    ComputedColumn as Convert(varchar, col1) + '-' + Convert(varchar, col2)
)

记住,如果任一值是null然后ComputedColumn的结果也将被null(使用默认排序规则和设置)

简单:

SELECT ComputedColumn = convert(varchar, col1) + '-' + convert(varchar, col2)
  FROM Table
SELECT col1, col2, (col1 + '-' + col2) as ComputedColumn

“+”是加法和级联字符。你可以明确地进行转换,但在这种情况下,包括“ - ”在中间应该引起的隐式转换

第一在设计模式中创建表

添加2列作为col1和COL2

添加另一列computedcolumn并设置计算列属性

“在这里输入的图像描述”

您也可以使用下面的脚本

CREATE TABLE [dbo].[tbl](
[col1] [varchar](50) NOT NULL,
[col2] [varchar](50) NOT NULL,
[ComputedColumn]  AS ((CONVERT([varchar],[col1],(0))+'-')+CONVERT([varchar],[col2],(0)))

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top