Как связать числа и строки для форматирования чисел в T-SQL?

Вы должны иметь возможность установить свой собственный MediaController.MediaPlayerControl и переопределить паузу и запуск

.

95
задан Jack 4 June 2009 в 16:01
поделиться

6 ответов

Несколько замечаний:

  • Это "длина", а не "длина"
  • Псевдонимы таблиц в вашем запросе, вероятно, сделают его более читаемым

Теперь перейдем к проблеме ...

Вам нужно явно преобразовать ваши параметры в VARCHAR, прежде чем пытаться объединить их. Когда SQL Server видит @my_int + 'X', он думает, что вы пытаетесь добавить число «X» к @my_int, а он не может этого сделать. Вместо этого попробуйте:

SET @ActualWeightDIMS =
     CAST(@Actual_Dims_Lenght AS VARCHAR(16)) + 'x' +
     CAST(@Actual_Dims_Width  AS VARCHAR(16)) + 'x' +
     CAST(@Actual_Dims_Height  AS VARCHAR(16))
195
ответ дан 24 November 2019 в 05:44
поделиться

Измените это:

SET @ActualWeightDIMS= @Actual_Dims_Lenght + 'x' + 
    @Actual_Dims_Width + 'x' + @Actual_Dims_Height;

На это:

SET @ActualWeightDIMS= CAST(@Actual_Dims_Lenght as varchar(3)) + 'x' + 
    CAST(@Actual_Dims_Width as varchar(3)) + 'x' + 
    CAST(@Actual_Dims_Height as varchar(3));

Измените это:

SET @ActualWeightDIMS = @ActualWeight;

На это:

SET @ActualWeightDIMS = CAST(@ActualWeight as varchar(50));

Вам необходимо использовать CAST. Узнайте все о CAST и CONVERT здесь , потому что типы данных важны!

8
ответ дан 24 November 2019 в 05:44
поделиться

Вы должны преобразовать свои целые числа как строку при попытке объединить их в varchar.

т.е.

 SELECT  @ActualWeightDIMS = CAST(@Actual_Dims_Lenght AS varchar(10)) 
                              + 'x' + 
                             CAST(@Actual_Dims_Width as varchar(10)) 
                             + 'x' + CAST(@Actual_Dims_Height as varchar(10));

В SQL Server 2008 вы можете использовать функцию STR :

   SELECT  @ActualWeightDIMS = STR(@Actual_Dims_Lenght) 
                              + 'x' + STR(@Actual_Dims_Width) 
                              + 'x' + STR(@Actual_Dims_Height);
4
ответ дан 24 November 2019 в 05:44
поделиться

Сначала приведите целые числа в varchar !

2
ответ дан 24 November 2019 в 05:44
поделиться

Вам необходимо преобразовать числовые данные в строки, прежде чем выполнять объединение строк, поэтому, например, используйте CAST (@Actual_Dims_Lenght AS VARCHAR) вместо просто @Actual_Dims_Lenght и т. Д.

2
ответ дан 24 November 2019 в 05:44
поделиться

Попробуйте преобразовать целые числа в varchar, прежде чем добавлять их в строку:

SET @ActualWeightDIMS = cast(@Actual_Dims_Lenght as varchar(8)) + 
   'x' + cast(@Actual_Dims_Width as varchar(8)) + 
   'x' + cast(@Actual_Dims_Height as varhcar(8))
1
ответ дан 24 November 2019 в 05:44
поделиться
Другие вопросы по тегам:

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