LIKE不工作但也工作

时间:2016-02-25 14:51:50

标签: sql sql-like

我在一家律师事务所工作。 我有一个包含所有案例的表格,格式为YY-99999-ABC,其中ABC是Judge的首字母。我的目标是在没有法官姓名首字母的情况下输入YY-99999

所以我的查询是这样的:

SELECT * FROM tblcase 
WHERE (CaseNm LIKE ? N'%')

当我选择预览数据时,我得到一行

然后当我测试我的代码时:

Dim caseadapter As New CWDataSetTableAdapters.CaseTableAdapter
Dim casedt As CWDataSet.CaseDataTable
Dim mCaseNum As String
mCaseNum = txtCaseNum.Text
casedt = caseadapter.GetCaseByCaseNum(mCaseNum)
If casedt.Rows.Count > 0 Then
    'do my thing            

Else
    Response.Write(mCaseNum)
    Response.Write(Len(mCaseNum).ToString)
End If

我现在得到行。 如果我将查询更改为CaseNum =?然后我输入整个案例编号,它有效。

帮助,帮助,F1,F1,F1 ......

2 个答案:

答案 0 :(得分:0)

您需要检查SQL Lite LIKE syntaxis

http://sqlite.org/lang_expr.html#like

SELECT FROM table_name
WHERE column LIKE 'XXXX%'

这是一个有附加样本的教程

http://www.tutorialspoint.com/sqlite/sqlite_like_clause.htm

答案 1 :(得分:0)

固定。

解决方案是更改WHERE子句:

在哪里RTRIM(CaseNum)喜欢?

然后在我的代码中:

mCaseNum = txtCaseNum.Text& “-___”

CaseNum是VARCHAR(50) 我读了这篇文章https://msdn.microsoft.com/en-us/library/ms179859.aspx并且有这个例子:

- 与nchar列匹配的Unicode模式 CREATE TABLE t(col1 nchar(30)); 插入价值观('罗伯特金'); 选择 * 从T col1喜欢'%King'; - 没有返回行

- 与nchar列和RTRIM匹配的Unicode模式 CREATE TABLE t(col1 nchar(30)); 插入价值观('罗伯特金'); 选择 * 从T 在哪里RTRIM(col1)喜欢'%King'; - 返回1行