colonne calculée doit conduire à la chaîne
-
20-09-2019 - |
Question
Voici un jeu d'enfant de ma base de données.
Les deux col1 et col2 sont déclarés comme int.
Mon ComputedColumn ajoute actuellement les colonnes 1 et 2, comme suit ...
col1 col2 ComputedColumn
1 2 3
4 1 5
Au lieu de cela, mon ComputedColumn devrait rejoindre les colonnes 1 et 2 (includimg le - caractère au milieu) comme suit ...
col1 col2 ComputedColumn
1 2 1-2
4 1 4-1
Alors, quelle est la syntaxe correcte?
La solution
vous définissez probablement votre colonne calculée comme col1+col2
. Essayez CAST(col1 AS NVARCHAR(MAX))+'-'+CAST(col2 AS NVARCHAR(MAX))
à la place.
Ou si vous préférez, vous pouvez remplacer NVARCHAR(MAX)
avec NVARCHAR(10)
ou une autre longueur de votre choix.
Autres conseils
create table TableName
(
col1 int,
col2 int,
ComputedColumn as Convert(varchar, col1) + '-' + Convert(varchar, col2)
)
Gardez à l'esprit que si l'une des valeurs est null
alors le résultat de ComputedColumn
sera également null
(en utilisant le classement par défaut et les paramètres)
simple:
SELECT ComputedColumn = convert(varchar, col1) + '-' + convert(varchar, col2)
FROM Table
SELECT col1, col2, (col1 + '-' + col2) as ComputedColumn
« + » est à la fois plus et le caractère de concaténation. Vous pouvez convertir explicitement, mais dans ce cas, y compris le « - ». Au milieu devrait provoquer une conversion implicite
d'abord créer la table en mode design
ajouter 2 colonne comme col1 et col2
ajouter une autre computedcolumn colonne et définissez la propriété de colonne calculée
Vous pouvez également utiliser ce script suivant
CREATE TABLE [dbo].[tbl](
[col1] [varchar](50) NOT NULL,
[col2] [varchar](50) NOT NULL,
[ComputedColumn] AS ((CONVERT([varchar],[col1],(0))+'-')+CONVERT([varchar],[col2],(0)))
)