Как заключить значения в команды SQL? - PullRequest
0 голосов
/ 11 октября 2009

Синтаксис имени столбца без ошибок: [My Column] вместо My Column, что приводит к ошибке.

Безошибочный синтаксис строкового значения: '25,00' вместо 25,00, что приводит к ошибке.

Я получаю сообщение об ошибке, используя одинарные кавычки для заключения значений, если тип данных столбца числовой. Существуют ли другие способы безопасного заключения значений для строковых или числовых типов данных?

Ответы [ 4 ]

2 голосов
/ 11 октября 2009

Числовые значения не имеют вложений или запятых.

Для строк, в зависимости от ваших настроек, в некоторых БД это могут быть одинарные или двойные кавычки.

1 голос
/ 11 октября 2009

Вероятно, вы получаете сообщение об ошибке при использовании кавычек, поскольку строка '25, 00 'не является допустимым десятичным числом. Обратитесь к документации СУБД, чтобы увидеть, как строки неявно преобразуются в числовые типы.

Без кавычек 25,00 также недействительно, я думаю, независимо от вашего местоположения. Стандарт SQL не позволяет указывать буквенные числа с использованием запятой в качестве десятичного разделителя.

1 голос
/ 11 октября 2009

В SQL Server функции преобразования / преобразования работают на региональном уровне. Поэтому используйте Convert в вашем запросе, передавая число в виде строки в кавычках, чтобы преобразовать его в требуемый десятичный тип. например:

SELECT CONVERT(decimal(5,2),'1234,56')
0 голосов
/ 11 октября 2009

Имя столбца, например My Column, вызывает ошибку из-за пробела в нем. [My Column] устраняет неоднозначность.

Значение, такое как '25,00', допустимо, потому что кавычки делают его строкой, в то время как 25,00 не является допустимым числом (по крайней мере, в вашей части мира) из-за запятой.

Если вы вставите 25,00 как число, как БД сможет отличить его от двух чисел?

...