2017-01-15 3 views
0

Я создаю виртуальный столбец в запросе SQL Server с именем TempField.SQL Server: как добавить строку в значение в виртуальном столбце

Я хотел бы, чтобы каждое значение в виртуальном столбце имело то же значение, что и столбец field1 PLUS, добавляет строку _suffix (которая является постоянной/одинаковой для всех значений).

С другой стороны, XXX представляет строку из поля1, а _suffix - это строка, которую я хотел бы добавить к XXX (добавленная строка одинакова для всех значений).

SELECT field1, field2, 'XXX_suffix' as TempField 
FROM table1 
+0

Есть ли способ сделать это без создания таблицы в базе данных? Я бы хотел сделать это «на лету», поэтому я назвал его «виртуальным» столбцом, потому что он будет отображаться только в результатах запроса, но не хранится нигде. –

+0

О, я вижу. Мои извинения. Я думаю, вы оба уже это делаете, верно? –

+1

@Charlie Вот что делает запрос Yashveers. Моя версия добавляет столбец, который вычисляется во время запроса. – jpw

ответ

3
 declare @temp as table (FName varchar(100) , LName varchar(100), Email varchar(100)) 

      insert into @temp (FName,LName,Email) values ('A','B','C') 
      insert into @temp (FName,LName,Email) values ('A1','B1','C1') 
      insert into @temp (FName,LName,Email) values ('A2','B2','C2') 
      insert into @temp (FName,LName,Email) values ('A','B','C') 
      insert into @temp (FName,LName,Email) values ('A1','B1','C1') 
      insert into @temp (FName,LName,Email) values ('A1','B1','C2') 


      select FName,LName,Email, (FName +'_suffix') as NewColumn 


      from @temp 
3

Если вы имеете в виду computed column, то это будет делать это для вас:

create table test(
    column1 varchar(20), 
    column2 as column1 + '_suffix' -- this is calculated when needed and not stored 
); 

insert test (column1) values ('adam'),('burt'); 

select * from test; 

-- result: 
column1 column2 
------- ----------- 
adam  adam_suffix 
burt  burt_suffix 
+0

jpw, это работает, за исключением того, что «_suffix», похоже, находится не в том месте. Я только получил его, чтобы он работал следующим образом: column1 + '_suffix' как column2. Кажется похожим, но наоборот дает ошибку. –

+1

@Charlie Когда вычисляемый столбец AS должен появляться раньше, но когда вы делаете псевдоним для чего-то во время запроса, как и в другом ответе, AS должен появиться после. – jpw

+0

Вероятно, это была терминологическая ошибка с моей стороны. Тогда мне нужен был псевдоним. Спасибо за разъяснения. –

Смежные вопросы