7

这是我的数据库的快照。

col1 和 col2 都被声明为 int。

我的 ComputedColumn 当前添加了第 1 列和第 2 列,如下所示...

col1  col2  ComputedColumn
1     2     3
4     1     5

而不是这个,我的 ComputedColumn 应该加入第 1 列和第 2 列(包括中间的“-”字符),如下所示......

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

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

4

5 回答 5

9

您可能将计算列定义为col1+col2. 试试CAST(col1 AS NVARCHAR(MAX))+'-'+CAST(col2 AS NVARCHAR(MAX))吧。

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

于 2010-03-18T19:31:40.117 回答
3
create table TableName
(
    col1 int,
    col2 int,
    ComputedColumn as Convert(varchar, col1) + '-' + Convert(varchar, col2)
)

请记住,如果任何一个值都是,null那么结果ComputedColumn也将是null(使用默认排序规则和设置)

于 2010-03-18T19:32:16.917 回答
0

简单的:

SELECT ComputedColumn = convert(varchar, col1) + '-' + convert(varchar, col2)
  FROM Table
于 2010-03-18T19:31:46.090 回答
0
SELECT col1, col2, (col1 + '-' + col2) as ComputedColumn

“+”既是加法又是连接字符。您可以显式转换,但在这种情况下,包括中间的“-”应该会导致隐式转换。

于 2010-03-18T19:32:35.713 回答
0

首先在设计模式下创建表

添加 2 列作为 col1 和 col2

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

在此处输入图像描述

您也可以使用以下脚本

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

)

于 2015-04-23T08:03:26.213 回答