Member 11337367 Ответов: 4

как добавить столбцы в sql?


prefix          srno   
TS-SIV-VS-	1
TS-SIV-VS-	4
TS-SIV-VS-	2


я хочу объединить оба столбца в один столбец, как в приведенном ниже формате

prefix          srno   invoice
TS-SIV-VS-	1       TS-SIV-VS-1   
TS-SIV-VS-	4       TS-SIV-VS-4
TS-SIV-VS-	2       TS-SIV-VS-2

_Asif_

Вы используете MS SQL?

King Fisher

Перепроектировать свой стол?

4 Ответов

Рейтинг:
2

Kornfeld Eliyahu Peter

1. Добавить столбец с помощью инструкции Alter таблицы [таблица] добавить колонки [колонка]
2. Обновите новый столбец с комбинированными значениями


Member 11337367

обновление сал установить накладной=префикс+срно
но это дает ошибку...

Msg 8114, Уровень 16, Состояние 5, Строка 1
Ошибка преобразования типа данных nvarchar в float.

Kornfeld Eliyahu Peter

Когда вы объединяете разные типы столбцов, вы должны преобразовать их во что - то общее, иначе это сделает SQL-как в вашем случае...
В вашем случае srno является последним элементом выражения, поэтому SQL попытается преобразовать все остальные элементы в тип rsno - float...It невозможно преобразовать значение префикса в float!!!
Попробуйте: обновить сал установить накладной = префикс + литье(срно как nvarchar)

Рейтинг:
1

riteshshrvstv

select prefix,srno,prefix+ CAST(srnoAS VARCHAR(10)) as invoice into TableName from
(
SELECT 'TS-SIV-VS-' as  a,    1 as b
UNION ALL
SELECT 'TS-SIV-VS-',    2
UNION ALL
SELECT 'TS-SIV-VS-',    3
)  t


Рейтинг:
0

_Asif_

Другой подход может быть таким

CREATE TABLE TEST
(
    prefix VARCHAR(10),
    SRNO   INT ,
    INVOICE AS prefix + CAST(SRNO AS VARCHAR(10))
);

INSERT INTO TEST(prefix, SRNO)
SELECT 'TS-SIV-VS-',	1
UNION ALL
SELECT 'TS-SIV-VS-',	2
UNION ALL
SELECT 'TS-SIV-VS-',	3

SELECT * FROM TEST


Рейтинг:
0

Vinay Haravi

Вы просите создать третий столбец в таблице ?
или если вы хотите только выбрать запрос для просмотра результата, вы можете использовать этот следующий запрос.

WITH CTE as
(
select 'TS-SIV-VS-' as Prefix, 1 as srno
union all
select 'TS-SIV-VS-' , 4
union all
select 'TS-SIV-VS-' , 1
)

select Prefix,Srno,prefix+cast(srno as nvarchar(2)) Invoice from cte