--[Table_1]
CREATE TABLE [dbo].[Table_1](
[A1] [nchar](10) NULL,
[A2] [nchar](10) NULL,
[A3] [nchar](10) NULL
) ON [PRIMARY]
--[Table_2]
CREATE TABLE [dbo].[Table_2](
[B1] [nchar](10) NULL,
[B2] [nchar](10) NULL
) ON [PRIMARY]
INSERT INTO [Table_1] (A1,A2,A3) VALUES('0001','AA','N')
INSERT INTO [Table_1] (A1,A2,A3) VALUES('0002','BB','N')
INSERT INTO [Table_1] (A1,A2,A3) VALUES('0003','CC','Y')
INSERT INTO [Table_2] (B1,B2) VALUES('0003','张三')
-----------
SELECT A1,A2
FROM [Table_1]
LEFT JOIN [Table_2] ON A1=B1
WHERE (B2='张三' and A3='Y') OR (A3='N')
--------
A1 A2
0001 AA
0002 BB
0003 CC
--------------------------------
想实现这样的功能,可能会表述不清楚..
WHERE (B2='张三' and A3='Y') OR (A3='N')
其中‘张三’ 是我传进去的参数。如何当‘张三’ 传进来是‘李四’的时候
结果显示成:
--------
A1 A2
0001 AA
或者说如何在SQL的where 中判断传进来的参数,然后显示指定的信息?
------解决思路----------------------
如果是想穿
这下就说清楚了。。

------解决思路----------------------
业务逻辑就可以判断啊,
/// <summary>
/// 获得数据列表
/// </summary>
public DataSet GetList(string name)
{
StringBuilder strSql = new StringBuilder();
strSql.Append("select * ");
strSql.Append(" FROM table0 ");
if (name == "李四")
{
strSql.Append(" WHERE A1='0001' ");
}
else
{
strSql.Append(" WHERE (B2='" + name + "' and A3='Y') OR (A3='N')");
}
return DbHelperSQL.Query(strSql.ToString());
}
------解决思路----------------------
DECLARE @name varchar(10)
SET @name='李四'
SELECT A1,A2
FROM [Table_1]
LEFT JOIN [Table_2] ON A1=B1
WHERE (@name='李四' A1='0001') OR(@name<>'李四' and ((B2=@name and A3='Y') OR (A3='N')))