Вычисляемый столбец должен закончиться для строкового представления

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

И col1 и col2 объявляются как интервал.

Мой 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

Так, каков правильный синтаксис?

6
задан bignose 25 March 2010 в 04:43
поделиться

4 ответа

Вы, вероятно, определяете свой вычисляемый столбец как col1 + col2 . Попробуйте вместо этого CAST (col1 AS NVARCHAR (MAX)) + '-' + CAST (col2 AS NVARCHAR (MAX)) .

Или, если хотите, вы можете заменить NVARCHAR (MAX) на NVARCHAR (10) или другую длину по вашему выбору.

9
ответ дан 9 December 2019 в 22:32
поделиться
create table TableName
(
    col1 int,
    col2 int,
    ComputedColumn as Convert(varchar, col1) + '-' + Convert(varchar, col2)
)

Имейте в виду, что если любое значение равно null , то результатом ComputedColumn также будет null (с использованием параметров сортировки и настроек по умолчанию)

2
ответ дан 9 December 2019 в 22:32
поделиться
SELECT col1, col2, (col1 + '-' + col2) as ComputedColumn

«+» - это и сложение, и символ конкатенации. Вы можете преобразовать явно, но в этом случае включение символа «-» в середине должно вызвать неявное преобразование.

0
ответ дан 9 December 2019 в 22:32
поделиться

просто:

SELECT ComputedColumn = convert(varchar, col1) + '-' + convert(varchar, col2)
  FROM Table
0
ответ дан 9 December 2019 в 22:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: