如何在SQL命令中包含值?

如何在SQL命令中包含值?,sql,syntax,string,numbers,compiler-errors,Sql,Syntax,String,Numbers,Compiler Errors,无错误的列名语法是[My column],而不是导致错误的My column 无错误字符串值语法是'25,00',而不是导致错误的25,00 如果列数据类型为数字,则使用单引号括起值时出错。对于字符串或数字数据类型,是否有其他方法可以安全地将值括起来?数字值没有任何附件或逗号 对于字符串,根据您的设置,在某些数据库中,它可以是单引号或双引号。数值没有任何附件或逗号 对于字符串,根据您的设置,在某些数据库中,它可以是单引号或双引号。像My column这样的列名会由于其中的空格而导致错误[My C

无错误的列名语法是
[My column]
,而不是导致错误的
My column

无错误字符串值语法是
'25,00'
,而不是导致错误的
25,00


如果列数据类型为数字,则使用单引号括起值时出错。对于字符串或数字数据类型,是否有其他方法可以安全地将值括起来?

数字值没有任何附件或逗号


对于字符串,根据您的设置,在某些数据库中,它可以是单引号或双引号。

数值没有任何附件或逗号


对于字符串,根据您的设置,在某些数据库中,它可以是单引号或双引号。

My column
这样的列名会由于其中的空格而导致错误<代码>[My Column]消除了歧义

'25,00'
这样的值是有效的,因为引号使其成为字符串,而
25,00
由于逗号而不是有效数字(至少在您所在的地区不是)


如果要将
25,00
作为一个数字插入,DB如何能够将其与两个数字区分开来?

My column
这样的列名会因为其中的空格而导致错误<代码>[My Column]消除了歧义

'25,00'
这样的值是有效的,因为引号使其成为字符串,而
25,00
由于逗号而不是有效数字(至少在您所在的地区不是)


如果要将
25,00
作为一个数字插入,DB如何能够将其与两个数字区分开来?

在SQL Server中,强制转换/转换函数具有区域意识。因此,在查询中使用Convert,将数字作为带引号的字符串传递,以将其转换为所需的十进制类型。例如:

SELECT CONVERT(decimal(5,2),'1234,56')

在SQL Server中,强制转换/转换函数具有区域意识。因此,在查询中使用Convert,将数字作为带引号的字符串传递,以将其转换为所需的十进制类型。例如:

SELECT CONVERT(decimal(5,2),'1234,56')

使用引号时可能会出现错误,因为字符串“25,00”不是有效的十进制数。查看RDBMS文档,了解字符串如何隐式转换为数字类型


没有报价,25,00也是无效的,我相信,无论你在哪里。SQL标准不允许使用逗号作为十进制分隔符指定文字数字。

使用引号时可能会出现错误,因为字符串“25,00”不是有效的十进制数字。查看RDBMS文档,了解字符串如何隐式转换为数字类型


没有报价,25,00也是无效的,我相信,无论你在哪里。SQL标准不允许使用逗号作为十进制分隔符来指定文字数字。

我认为这是错误的。据我所知,SQL Server从不使用区域设置来解释十进制分隔符。事实上,您是否在欧洲安装上测试了这个CONVERT语句并发现它成功了?我认为这是错误的。据我所知,SQL Server从不使用区域设置来解释十进制分隔符。事实上,您是否在欧洲安装上测试了此CONVERT语句并发现它成功了?它必须是某种形式的MS SQL Server—AFAIK它是唯一使用非标准(如,未经ISO 9075批准)符号将名称括在方括号中的服务器。在任何其他服务器中(可能除了Sybase),这与其说是无错误的,不如说是有错误保证的。SQL标准使用双引号将分隔标识符括起来,并在字符串周围使用单引号。它必须是某种形式的MS SQL Server—AFAIK它是唯一使用非标准(如,未经ISO 9075批准)符号将名称括在方括号中的服务器。在任何其他服务器中(可能除了Sybase),这与其说是无错误的,不如说是有错误保证的。SQL标准使用双引号括住分隔标识符,并在字符串周围使用单引号。