Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.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语句筛选表数据_Sql_Select_Stored Procedures - Fatal编程技术网

使用select sql语句筛选表数据

使用select sql语句筛选表数据,sql,select,stored-procedures,Sql,Select,Stored Procedures,我想使用select语句筛选表数据,我有四列,我还有四个文本框来在每列中启用搜索,我可以在任何框中输入值,当我在文本框中输入值时,我想返回与我输入的值匹配的记录,我该如何做 ALTER PROCEDURE dbo.test_search ( @ID int, @FirstName nvarchar(50), @MiddleName nvarchar(50), @LastName nvarchar(50) ) AS SELECT

我想使用select语句筛选表数据,我有四列,我还有四个文本框来在每列中启用搜索,我可以在任何框中输入值,当我在文本框中输入值时,我想返回与我输入的值匹配的记录,我该如何做

ALTER PROCEDURE dbo.test_search

    (
        @ID int,
    @FirstName nvarchar(50),
    @MiddleName nvarchar(50),
    @LastName nvarchar(50)
    )

AS
    SELECT     ID, FirstName, MiddleName, LastName
    FROM         StudentsInformation
    WHERE (@ID IS NULL OR StudentsInformation.ID = @ID) AND
           (@FirstName IS NULL OR StudentsInformation.FirstName = @FirstName )AND
           (@MiddleName IS NULL OR StudentsInformation.MiddleName = @MiddleName )AND
           (@LastName IS NULL OR StudentsInformation.LastName = @LastName )
    RETURN
首先,您需要找到传递搜索字符串的
文本框

根据文本框的不同,查询可以写入相关的

select * from table_name where column like '%text-box value%'

编辑

SELECT ID,FirstName,MiddleName,LastName
FROM  StudentsInformation
WHERE 1=1
ID=(case when @ID <>0 AND @ID IS NOT NULL then @ID else ID end)
and FirstName=(case when @FirstName<>'' and @FirstName IS NULL then @FirstName 
else FirstName)
and MiddleName=(case when @MiddleName<>'' and @MiddleName IS NULL then @MiddleName 
else MiddleName)
and LastName=(case when @LastName<>'' and @LastName IS NULL then @LastName 
else LastName)
选择ID、FirstName、MiddleName、LastName
来自学生信息
其中1=1
ID=(当@ID 0和@ID不为NULL时,则@ID else ID end)
和FirstName=(当@FirstName“”和@FirstName为空时,则为@FirstName
(姓名)
和MiddleName=(当@MiddleName“”和@MiddleName为空时,则为@MiddleName
(姓名)
和LastName=(当@LastName“”和@LastName为空时,则为@LastName
(姓氏)

语法取决于您使用的编程语言

但一般来说:

string sql="select * from tableName where"

if((txt1.Text!="")&&(sql=="select * from tableName where")
sql=sql+"colName like % @txt1 %"
else
sql=sql+" and colName like % @txt1 %"



if((txt2.Text!="")&&(sql=="select * from tableName where")
sql=sql+"colName like % @txt2 %"
else
sql=sql+" and colName like % @txt2 %"


if((txt3.Text!="")&&(sql=="select * from tableName where")
sql=sql+"colName like % @txt3 %"
else
sql=sql+" and colName like % @txt3 %"
这样做。

编辑:

SELECT 
id
, firstname
, middlename
, lastname    
FROM studentsinformation
WHERE id = @id        
OR firstname LIKE '%' + @firstname + '%'
    OR middlename LIKE '%' + @middlename + '%'
    OR lastname LIKE '%' + @lastname + '%'
如果要为所有复选框选择正确的记录,您可以为和交换或。

我希望这能起作用:

Select * from <table-name> 
where 
<Column-name1> Like 'TextBox1%'
or
<Column-name2> Like 'TextBox2%'
or
<Column-name3> Like 'TextBox2%'
or
<Column-name4> Like 'TextBox4%'
从中选择*
哪里
比如“TextBox1%”
或
比如“TextBox2%”
或
比如“TextBox2%”
或
比如“TextBox4%”

向我们展示一些代码和您尝试过的内容?您想用四列数据检查值吗?@Daanvn我尝试了这段代码,但它返回了一条记录。您能正确格式化代码并向我们展示完整的过程定义吗?@a_horse__没有名字,kinldy检查它,但我想在一个gridview中查看它们,gow我可以这样做吗?我理解正确了吗,您希望结果是来自所有4个复选框的组合搜索结果?再次编辑,现在应该可以工作了。如果您正在使用oracle,请将+符号更改为| |请检查我的a以上代码,我想根据多个参数进行筛选,并根据用户在文本框中输入的值发送这些参数。请尝试一下,我忘了()它返回所有列,而不进行筛选