如何为SQLite中的值使用变量?
我正在尝试将变量合并到查询中,以使其更易于管理。我遵循中概述的指导方针,并尝试实施这些指导方针 我正在使用SQLite来实现这一点,所以我被它的局限性所困扰,但看起来有些人已经找到了一些解决办法。以下查询成功运行,但不返回任何记录。如果我分别用“John”和“Smith”替换WHERE子句中的变量名,查询将返回1条记录,但如果我使用我创建的变量名,则返回0条记录。删除变量周围的引号并不能使其正常工作如何为SQLite中的值使用变量?,sqlite,variables,Sqlite,Variables,我正在尝试将变量合并到查询中,以使其更易于管理。我遵循中概述的指导方针,并尝试实施这些指导方针 我正在使用SQLite来实现这一点,所以我被它的局限性所困扰,但看起来有些人已经找到了一些解决办法。以下查询成功运行,但不返回任何记录。如果我分别用“John”和“Smith”替换WHERE子句中的变量名,查询将返回1条记录,但如果我使用我创建的变量名,则返回0条记录。删除变量周围的引号并不能使其正常工作 CREATE TEMP TABLE IF NOT EXISTS _Variables (Name
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子句没有正确地引用我创建的变量。正确的称呼方式是什么?按照上面链接的答案做似乎对我不起作用
注释掉
;删除表变量代码>不会更改结果。您应该能够从设置的表中选择变量:
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');