-
20-09-2019 - |
题
下面是我的数据库的一个单元。
两者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)))
)
不隶属于 StackOverflow