A coluna calculada deve resultar em string
-
20-09-2019 - |
Pergunta
Aqui está um estalo do meu banco de dados.
Tanto Col1 quanto Col2 são declarados como int.
Atualmente, minha coluna computada adiciona as colunas 1 e 2, como segue ...
col1 col2 ComputedColumn
1 2 3
4 1 5
Em vez disso, minha coluna computada deve se juntar às colunas 1 e 2 (incluindo o '-' personagem no meio) da seguinte forma ...
col1 col2 ComputedColumn
1 2 1-2
4 1 4-1
Então, qual é a sintaxe correta?
Solução
Você provavelmente está definindo sua coluna calculada como col1+col2
. Tentar CAST(col1 AS NVARCHAR(MAX))+'-'+CAST(col2 AS NVARCHAR(MAX))
em vez de.
Ou se preferir, você pode substituir NVARCHAR(MAX)
com NVARCHAR(10)
ou um comprimento diferente de sua escolha.
Outras dicas
create table TableName
(
col1 int,
col2 int,
ComputedColumn as Convert(varchar, col1) + '-' + Convert(varchar, col2)
)
Tenha em mente que se um valor for null
então o resultado de ComputedColumn
Também será null
(usando o agrupamento e configurações padrão)
simples:
SELECT ComputedColumn = convert(varchar, col1) + '-' + convert(varchar, col2)
FROM Table
SELECT col1, col2, (col1 + '-' + col2) as ComputedColumn
"+" é adição e o caráter de concatenação. Você pode converter explicitamente, mas neste caso, incluindo o '-' no meio, deve causar uma conversão implícita.
primeiro crie tabela no modo de design
Adicione 2 coluna como col1 e col2
Adicione outra coluna ComputedColumn e Definir Propriedade da coluna computada
Além disso, você pode usar esse script seguinte
CREATE TABLE [dbo].[tbl](
[col1] [varchar](50) NOT NULL,
[col2] [varchar](50) NOT NULL,
[ComputedColumn] AS ((CONVERT([varchar],[col1],(0))+'-')+CONVERT([varchar],[col2],(0)))
)