Вычисляемый столбец должен привести к строке
-
20-09-2019 - |
Вопрос
Вот снимок моей базы данных.
И 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
добавьте еще один вычисляемый столбец и установите свойство вычисляемого столбца
Также вы можете использовать следующий скрипт
CREATE TABLE [dbo].[tbl](
[col1] [varchar](50) NOT NULL,
[col2] [varchar](50) NOT NULL,
[ComputedColumn] AS ((CONVERT([varchar],[col1],(0))+'-')+CONVERT([varchar],[col2],(0)))
)