这是我的数据库的快照。
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
那么,正确的语法是什么?
答案 0 :(得分:9)
您可能将计算列定义为col1+col2
。请改为CAST(col1 AS NVARCHAR(MAX))+'-'+CAST(col2 AS NVARCHAR(MAX))
。
或者,如果您愿意,可以将NVARCHAR(MAX)
替换为NVARCHAR(10)
或您选择的其他长度。
答案 1 :(得分:2)
create table TableName
(
col1 int,
col2 int,
ComputedColumn as Convert(varchar, col1) + '-' + Convert(varchar, col2)
)
请注意,如果任一值为null
,那么ComputedColumn
的结果也将为null
(使用默认排序规则和设置)
答案 2 :(得分:0)
简单:
SELECT ComputedColumn = convert(varchar, col1) + '-' + convert(varchar, col2)
FROM Table
答案 3 :(得分:0)
SELECT col1, col2, (col1 + '-' + col2) as ComputedColumn
“+”既是加法又是串联字符。您可以显式转换,但在这种情况下,包括中间的“ - ”应该会导致隐式转换。
答案 4 :(得分:0)
首先在设计模式下创建表
将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)))
)