我正在尝试将变量合并到查询中以使其更易于管理。我遵循了此答案中概述的准则,并尝试实施它们。
我正在为此使用SQLite,所以我坚持它的局限性,但是看起来有些人已经找到了一些解决方法。以下查询成功运行,但不返回任何记录。如果我分别用“ John”和“ Smith”替换WHERE子句中的变量名,则查询返回1条记录,但是如果我使用创建的变量名,则返回0条记录。删除变量周围的引号不会使其起作用。
CREATE TEMP TABLE IF NOT EXISTS _Variables (Name TEXT PRIMARY KEY, Value TEXT);
INSERT OR REPLACE INTO _Variables VALUES ('VarFirstName', 'John');
INSERT OR REPLACE INTO _Variables VALUES ('VarLastName', 'Smith');
SELECT LastName,FirstName,BirthYear,(strftime('%Y', date('now')) - BirthYear) AS Age,LocalExp,TotalExp,TotSalary,TotFringe,WorkLocationName,SchoolName
FROM DPISTAFF2008_2009
WHERE DPISTAFF2008_2009.FirstName = 'VarFirstName' AND DPISTAFF2008_2009.LastName = 'VarLastName'
;DROP TABLE _Variables;
我假设我的WHERE子句未正确引用我创建的变量。打电话给他们的正确方法是什么?做上面链接回答的问题似乎对我不起作用。
注释掉;DROP TABLE _Variables;
不会改变结果。
您应该能够从设置的表中选择变量:
SELECT
LastName,
FirstName,
BirthYear,
(strftime('%Y', date('now')) - BirthYear) AS Age,
LocalExp,TotalExp,TotSalary,TotFringe,WorkLocationName,SchoolName
FROM DPISTAFF2008_2009
WHERE
DPISTAFF2008_2009.FirstName =
(SELECT Value FROM _Variables WHERE Name = 'VarFirstName') AND
DPISTAFF2008_2009.LastName =
(SELECT Value FROM _Variables WHERE Name = 'VarLastName');
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句