【问题标题】:LIKE is not working BUT working tooLIKE 不工作但也工作
【发布时间】:2016-06-08 10:11:37
【问题描述】:

我在一家律师事务所工作。 我有一张包含所有案例的表格,格式为YY-99999-ABC,其中ABC 是法官的首字母。我的目标是只输入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....

【问题讨论】:

  • 类似WHERE (CaseNm LIKE CaseNum LIKE ? N'%')?好吧,这不是一个有效的 SQL 语法...
  • 这是一个错字。我编辑了查询..
  • 那你也许应该做WHERE (CaseNm LIKE ? || N'%')|| 是ANSI SQL 连接,有些产品有CONCAT()+

标签: sql sql-like


【解决方案1】:

您需要检查 SQL Lite LIKE 语法

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

SELECT FROM table_name
WHERE column LIKE 'XXXX%'

这是一个带有其他示例的教程

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

【讨论】:

  • 让我补充一下,当我测试时,我正在使用查询生成器并且我使用执行查询。它工作正常。当我在 tableadapter 对象上使用预览数据时,它不起作用。
  • 你说的是这个查询还是你的问题的查询?
【解决方案2】:

已修复。

解决方案是更改 WHERE 子句:

在哪里 RTRIM(CaseNum) 喜欢?

然后在我的代码中:

mCaseNum = txtCaseNum.Text & "-___"

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

-- 与 nchar 列匹配的 Unicode 模式 创建表 t (col1 nchar(30)); 插入 t 值(“罗伯特·金”); 选择 * 从T WHERE col1 LIKE '% King'; -- 没有返回行

-- Unicode 模式与 nchar 列和 RTRIM 匹配 创建表 t (col1 nchar (30)); 插入 t 值(“罗伯特·金”); 选择 * 从T WHERE RTRIM(col1) LIKE '% King'; -- 返回 1 行

【讨论】:

    猜你喜欢
    • 2014-10-14
    • 1970-01-01
    • 2014-08-04
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 2017-06-04
    • 2022-01-23
    • 1970-01-01
    相关资源
    最近更新 更多