Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL Server 2005 Express中将NVARCHAR转换为整数时出现问题_Sql_Sql Server 2005 Express - Fatal编程技术网

SQL Server 2005 Express中将NVARCHAR转换为整数时出现问题

SQL Server 2005 Express中将NVARCHAR转换为整数时出现问题,sql,sql-server-2005-express,Sql,Sql Server 2005 Express,各位下午好, 我在将计算转换为整数时遇到了一些问题!基本上我有计算能力 CAST(ROUND(SQRT(SQUARE(69.1*(CAST(tblPostCode.PCLat AS DECIMAL(30,15)) - "& 53.078282 &")) + SQUARE(69.1 * (CAST(tblPostCode.PCLng AS DECIMAL(30,15)) - "& -2.271495 &") * COS(CAST(tblPostCode.PCLat

各位下午好,

我在将计算转换为整数时遇到了一些问题!基本上我有计算能力

CAST(ROUND(SQRT(SQUARE(69.1*(CAST(tblPostCode.PCLat AS DECIMAL(30,15)) - "& 53.078282 &")) + SQUARE(69.1 * (CAST(tblPostCode.PCLng AS DECIMAL(30,15)) - "& -2.271495 &") * COS(CAST(tblPostCode.PCLat AS DECIMAL(30,15))/57.3))),0) AS INTEGER)
(它根据邮政编码计算经纬度之间的距离)

现在,我可以在SELECT语句中使用这个值,输出的
ISNUMERIC()
返回true


但是,当我尝试在WHERE语句中限制此值时,
WHERE 我将表引用(tblPostCode.PCLng、tblPostCode.PCLat)替换为常量值(5和6)以测试查询。正如马丁·史密斯(Martin Smith)在评论中已经提到的那样,引号中的表达完全无效。这可能是前一个问题的残余吗?sql所做的是尝试将表达式转换为整数,但由于引号中的“&”而失败。如果删除标记并保持常量值,则对我有效:

SELECT  CAST(ROUND(SQRT(SQUARE(69.1
                               * ( CAST(5 AS DECIMAL(30, 15))
                                   - 53.078282 )) + SQUARE(69.1
                                                              * ( CAST(6 AS DECIMAL(30,
                                                              15))
                                                              - 2.271495 )
                                                              * COS(CAST(5 AS DECIMAL(30,
                                                              15)) / 57.3))),
                   0) AS INTEGER)
结果是:

3332

“-”和-2.271495&”这个东西是完全无效的。你能发布运行的代码吗?编辑:除非您确实有一个名为
&-2.271495&
的列,否则您可以提供表结构和示例数据来解决这个问题吗???给出异常“&-2.271495&”的原因会更有帮助。是的,你是对的,&&&”是我复制和粘贴我的ASP代码。奇怪的是,查询将运行,输出两组lat/long之间的距离,但是当我尝试使用计算来查找居住距离小于200英里的成员时,查询将输出居住距离小于200英里的所有成员,然后移动到下一个不居住距离的成员并抛出错误!“选择…[计算]”=运行正常“选择…[计算]”。。。其中[the calculation]