2013-06-14 6 views
-3

У меня есть одна таблица tbl1 есть пять столбцов, столбцов является Сно, код, высота, ширина, размер структураUpdate Sql Server Query

sno. code height width size 
--------------------------- 
1  s1 3  5 3x5 
2  s2 4  6 4x6 
3  s3 5  8 NULL 
4  s4 8  12 NULL 
5  s5 9  11 NULL 

Я хочу знать, если я обновление размера для кода размер s3 вместо NULL является 5х8 по запросу использовать эту функцию для работы

UPDATE tbl1 
SET size = height 
WHERE  (sno = '3') 

, но если я использую

UPDATE tbl1 
SET size = height, 'x' width 
WHERE  (sno = '3') 

не работает

+0

Какая ошибка вы получаете? Я думаю, что может быть проблема преобразования типов. Можете ли вы сказать мне об ошибке? –

+1

, если ваш размер представлен как «Высота x ширина» каждый раз, когда я не стал бы его хранить. Вместо этого используйте свой интерфейсный или бизнес-уровень, чтобы сделать это. –

+1

Или если вы действительно хотите это в базе данных, вы можете сделать это как вычисленный столбец (поэтому всегда правильно), а не выдать это 'UPDATE'. –

ответ

1

Try:

UPDATE tbl1 
SET size = CAST(height AS VARCHAR(5)) + 'x' + CAST(width AS VARCHAR(5)) 
WHERE  (sno = '3') 

Но я согласен с комментарием Bhupendra Пател. Не беспокойтесь о том, чтобы сохранить это, это только вопрос форматирования, с которым можно справиться более высоким уровнем.

+0

, если 'height' и' width' являются числами, вы делаете сначала бросок, CAST (высота AS VARCHAR (5)) 'перед конкатенацией, чтобы избежать ошибки. ':)' –

+0

, если вы используете высоту и ширину как int, тогда вам нужно сначала преобразовать ее в вершал. вы можете использовать convert (varchar, height) + 'x' + convert (varchar, width). –

+0

Я просто проверял это в скрипке, завершая прямо сейчас. Спасибо, что указали на это :) –