【发布时间】:2013-01-29 10:10:22
【问题描述】:
我的供应商发送了一段 SQL 代码,让我很难使用现有的查询。
我有一个网页正在查询数据库表中的多个值,这是我在 ASP 页面中查询 SQL 的代码:
SELECT [Account],
[AccountName],
[ComputerName],
[EMail],
[Telephone],
[Status],
cast(cast([StartDate] as float) as datetime) as 'Start-Date',
cast(cast([LastBackupDate] as float) as datetime) as 'LastBackup-Date',
[TotalFileSize],
[TotalFileCount]
FROM ExpandedView WHERE loginid = @0
这个查询很好用,但是上面指定的“Account”字段显然只返回了实际帐号的一部分。显然,我的供应商使用计算来创建最终帐号,并且他们已将其发送给我:
use <databasenamehere>
select left(
convert(nvarchar,E.Account)
,5)+'-'+convert(nvarchar,
( 50 +((E.Account)%10)
-((E.Account/10)%10)
+((E.Account/100)%10)
-((E.Account/1000)%10)
+((E.Account/10000)%10)
-((E.Account/100000)%10)
+((E.Account/1000000)%10)
-((E.Account/10000000)%10)
+((E.Account/100000000)%10))
%10 )
+right(convert(nvarchar,E.Account),4)
as 'Account', AccountName from ExpandView E
Inner Join Customer C
on E.Account=C.Account
现在我意识到这个查询是选择帐号的前 5 个数字,附加连字符,然后对最后 4 个数字执行数学过程,但是我不知道如何阅读。我可以简单地将这两个语句与“AND”子句一起附加吗?
我真的很想了解“E.Account”指的是什么以及为什么他们在查询中使用“ExpandView E”和“Customer C”。我也有点迷失这些与实际表格的关系。
我们将不胜感激。或者,如果您愿意,请发布链接,我会尽我所能阅读。
谢谢!
【问题讨论】:
-
这在我看来不像 SQL。它是什么,一些 Microsoft 扩展?
-
对我来说它看起来像 SQL,但不是 MSSQL。 :D