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?

Foi útil?

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

enter image description here

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)))

)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top