Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/three.js/2.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
将SELECT上的SQL大小写转换为SQLAlchemy格式时出现不明确的文字错误_Sqlalchemy - Fatal编程技术网

将SELECT上的SQL大小写转换为SQLAlchemy格式时出现不明确的文字错误

将SELECT上的SQL大小写转换为SQLAlchemy格式时出现不明确的文字错误,sqlalchemy,Sqlalchemy,我在将下面关于SELECT的CASE语句翻译成SQLAlchemy ORM时遇到问题。我一直收到错误:“不明确的文本:False。使用'text()'函数指示SQL表达式文本,或使用'literal()'指示绑定值。” Case语句检查一个变量,然后返回数据库中的一列或选择一个文本。文本是在运行sql语句之前设置的 DECLARE @str_cntry_cd varchar(3) SELECT COUNTRY_CD, CASE WHEN @str_cntry_cd IS

我在将下面关于SELECT的CASE语句翻译成SQLAlchemy ORM时遇到问题。我一直收到错误:“不明确的文本:False。使用'text()'函数指示SQL表达式文本,或使用'literal()'指示绑定值。”

Case语句检查一个变量,然后返回数据库中的一列或选择一个文本。文本是在运行sql语句之前设置的

  DECLARE @str_cntry_cd varchar(3)
  SELECT COUNTRY_CD,
         CASE WHEN @str_cntry_cd IS NOT NULL THEN RESOLUTION_ID 
              ELSE 10 
           END AS RESOLUTION_ID
  FROM COUNTRY
SQLAlchemy代码如下所示:

  CREATE TABLE dbo.COUNTRY
  (
      COUNTRY_CD varchar(4) NOT NULL,
      RESOLUTION_ID int NOT NULL
  )
下表如下:

  CREATE TABLE dbo.COUNTRY
  (
      COUNTRY_CD varchar(4) NOT NULL,
      RESOLUTION_ID int NOT NULL
  )
SQLAlchemy.9.9 视窗7 SQL Server 2008 R2
Python 2.7

国家代码!=没有任何故障是由
引起的。 它的计算结果是python的
True
/
False
,SQLAlchemy不知道如何将其转换为SQL的True/False,因为它是不明确的。因此,您需要通过使用SQLAlchemy的
text
literal
函数为正在使用的SQL添加literal true/false。但是更好的方法是使用
true
false
函数

因此,您可以将代码中的buggy部分替换为:

db.false()

希望这有帮助