【发布时间】:2015-12-15 21:31:29
【问题描述】:
我正在尝试使用作为客户代码的输入变量检索数据。如果用户输入客户代码,查询将检索该客户数据,但如果用户将客户代码留空,我想检索所有客户数据。下面是我可以根据“3_customer”中输入的客户代码检索数据的代码,但我不知道如何执行这种 IF-THEN-ELSE 类型的查询如果输入变量,我需要获取所有客户的数据留空。
谢谢, 唐
SELECT
open_item.order_id order_id,
convert(varchar(10),orders.ordered_date,101) order_date,
orders.revenue_code_id,
orders.operations_user,
open_item.customer_id cust_no,
customer.name cust_name,
convert(varchar(10),open_item.gl_date,101) adjust_date,
open_item.amount amount,
open_item.record_type type,
open_item.ar_reason_code_id,
ar_reason_code.descr reason
FROM
open_item
LEFT OUTER JOIN
customer ON customer.id = open_item.customer_id
LEFT OUTER JOIN
ar_reason_code ON open_item.ar_reason_code_id = ar_reason_code.id
LEFT OUTER JOIN
orders ON orders.id = open_item.order_id
WHERE
open_item.gl_date >= $1_sdate$ AND
open_item.gl_date <= $2_edate$ AND
open_item.source = 'C' AND
open_item.record_type = 'C' AND
open_item.customer_id = $3_customer$
【问题讨论】:
-
这是什么数据库?
-
@Ruslan:看起来像 SQL Server
-
那么 customer_ID 可以设置为“Blank”/空而不是 NULL 吗?或者 customer.id 中是否有非显示字符?
-
@xQbert:customer.id 的输入字段中似乎没有任何非显示字符。表格中的 customer_id 字段不能为空。
-
那么$3_customer$ 上是否传入了空集''?我期待空
标签: sql