Pregunta

Aquí hay una instantánea de mi base de datos.

Tanto col1 como col2 se declaran como int.

Mi ComputedColumn actualmente agrega las columnas 1 y 2, de la siguiente manera...

col1  col2  ComputedColumn
1     2     3
4     1     5

En lugar de esto, mi ComputedColumn debería unir las columnas 1 y 2 (incluida la '-' personaje en el medio) de la siguiente manera...

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

Entonces, ¿cuál es la sintaxis correcta?

¿Fue útil?

Solución

Probablemente se esté definiendo su columna calculada como col1+col2. Trate de CAST(col1 AS NVARCHAR(MAX))+'-'+CAST(col2 AS NVARCHAR(MAX)) lugar.

O si lo prefiere, puede sustituir con NVARCHAR(MAX) NVARCHAR(10) o una longitud diferente de su elección.

Otros consejos

create table TableName
(
    col1 int,
    col2 int,
    ComputedColumn as Convert(varchar, col1) + '-' + Convert(varchar, col2)
)

Tenga en cuenta que si cualquiera de los valores es null entonces el resultado de ComputedColumn también será null (usando la colación por defecto y la configuración)

simple:

SELECT ComputedColumn = convert(varchar, col1) + '-' + convert(varchar, col2)
  FROM Table
SELECT col1, col2, (col1 + '-' + col2) as ComputedColumn

"+" es tanto el carácter de suma como el de concatenación.Podrías convertir explícitamente, pero en este caso, incluir el '-' en el medio debería provocar una conversión implícita.

primero crear la tabla en modo de diseño

añadir 2 columna como col1 y col2

añadir otra computedcolumn columna y establecer la propiedad de columna calculada

introducir descripción de la imagen aquí

También puede utilizar esa secuencia de comandos siguiente

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 bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top