1

我有一个 SQL Server 上存储过程的输出,我在 CF9 中运行查询查询。我无权访问存储过程来进行任何更改,但我可以输出内容。

我的问题是我的 QofQ 在几个字段上匹配,其中一个字段的记录在我匹配的字段之一中有一个空字符串。记录集应该返回该记录,但它不是我的记录集的一部分。

<cfquery name="test" dbtype="query">
SELECT * 
FROM dataLimited
WHERE market = <cfqueryparam value="" cfsqltype="cf_sql_varchar">
</cfquery>

这将返回零记录,即使我可以在存储过程的转储中看到记录。

4

2 回答 2

5

您确定该字段有一个空字符串,而不是 null 吗?CF 并没有很好的区分 NULL 和空字符串,但是查询的查询仍然尊重差异。即使用表达式:

WHERE market IS NULL
于 2016-05-30T02:07:39.390 回答
0

我正在循环我的 QofQ 以执行后续 QofQ,在表中创建动态行。因此,我随后的 QofQ 将具有 WHERE 子句,这些子句将匹配(可能)NULL 值或非 NULL 值。我的解决方案是检查值的 len() ,然后在随后的查询中使用:

<cfif len(data.market)> 
AND market = <cfqueryparam value="#data.market#" cfsqltype="cf_sql_varchar"> 
<cfelse> 
AND market IS NULL 
</cfif>
于 2016-05-30T18:59:26.933 回答