我有一个SQL Server上的存储过程的输出,我在CF9中运行查询查询。我没有任何访问存储过程的权限进行任何更改,但我可以输出内容。
我的问题是我的QofQ在几个字段上匹配,其中一个字段的记录在我匹配的其中一个字段中有一个空字符串。记录集应该返回该记录,但它不是我的记录集的一部分。
<cfquery name="test" dbtype="query">
SELECT *
FROM dataLimited
WHERE market = <cfqueryparam value="" cfsqltype="cf_sql_varchar">
</cfquery>
这会返回零记录,即使我可以在存储过程的转储中看到记录。
答案 0 :(得分:5)
您确定该字段是否为空字符串,而不是null? CF没有很好地区分NULL和空字符串,但查询查询still respects the difference。即使用表达式:
WHERE market IS NULL
答案 1 :(得分:0)
我正在循环我的QofQ以执行后续QofQ,在表格中创建动态行。因此,我后续的QofQ将具有将在(可能)NULL值或非NULL值上匹配的WHERE子句。我的解决方案是检查值的len(),然后在后续查询中使用:
<cfif len(data.market)>
AND market = <cfqueryparam value="#data.market#" cfsqltype="cf_sql_varchar">
<cfelse>
AND market IS NULL
</cfif>