Вопрос

Вот снимок моей базы данных.

И col1, и col2 объявлены как int.

Мой ComputedColumn в настоящее время добавляет столбцы 1 и 2 следующим образом...

col1  col2  ComputedColumn
1     2     3
4     1     5

Вместо этого мой ComputedColumn должен объединить столбцы 1 и 2 (включая '-' символ посередине) следующим образом...

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

добавьте еще один вычисляемый столбец и установите свойство вычисляемого столбца

enter image description here

Также вы можете использовать следующий скрипт

CREATE TABLE [dbo].[tbl](
[col1] [varchar](50) NOT NULL,
[col2] [varchar](50) NOT NULL,
[ComputedColumn]  AS ((CONVERT([varchar],[col1],(0))+'-')+CONVERT([varchar],[col2],(0)))

)

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top