2013-09-16 2 views
14

Есть ли разница между использованием SPACE(2) + '|' + SPACE(2) или просто ' | '? Я знаю, что выход будет таким же, но я не уверен в других аспектах ... На самом деле я не вижу смысла в использовании функции SPACE, если нет разницы ...SQL - разница между SPACE (2) + '|' + ПРОСТРАНСТВО (2) и '| «?

Спасибо!

ответ

16

Первое различие, которое приходит мне на ум, - это количество пробелов. Предположим, вы хотели бы написать 20 пробелов, слово и еще 20 пробелов:

'     abcd     ' 

Сколько мест? Гораздо полезнее:

SPACE(20)+'abcd'+SPACE(20) 

Не так ли?

Существует много случаев, когда вы редактируете чей-то код, генерирующий SQL-запросы. Более чем вероятно, что вы удаляете место где-то и не можете его отладить. Нет такой проблемы, если используется функция SPACE.

+2

Не говоря уже, вы можете добавить пробелы до максимальной длины нормального VARCHAR в T-SQL (8000) – penguat

+0

Для включения пробелов в данных Unicode, или возвращать более 8000 символов пространства, использование REPLICATE вместо ПРОСТРАНСТВА. – Seymour

5

Его более ясно видеть пространство (50) по сравнению с

50 пространств ..

"            " 

Вот мой разум.

+0

Я вижу, что другие опубликовали то же самое, что и я сказал примерно в то же время. е – Daniel

4

Нет, нет никакой разницы.

Пункт функции SPACE появляется, когда имеется больше пробелов (скажем, 20), или вы хотите сделать количество пробелов понятным для читателя.

16

Я согласен с другими, которые ответили, что SPACE() полезен для указания количества используемых пробелов или для добавления большого количества пробелов.

Использование SPACE также может быть проще, если вы хотите создать файл формата фиксированной ширины - вы можете использовать длину данных в качестве параметра, например.

SELECT 
    name + SPACE(20-LEN(name)) 
FROM 
    SomeTableWithNames 
Смежные вопросы