标签: sql-like

我们不能将[说明符]与Oracle的like运算符一起使用吗?

当在oracle中使用LIKE运算符来匹配任何字符时,我不能使用[ 说明符 ]例如.找出以's'或'r'开头的客户名称.所以我们不能将查询写为"select*from emp where customer LIKE'[sr]%'";

我们不能在ORACLE中使用LIKE运算符的"[]"括号吗?

sql oracle sql-like

1
推荐指数
1
解决办法
927
查看次数

SQL在WHERE子句中选择IN与LIKE

哪一个性能更快?

SELECT field1, field2, field3, field4
FROM MyTable
WHERE field5 LIKE '%AL'
Run Code Online (Sandbox Code Playgroud)

SELECT field1, field2, field3, field4
FROM MyTable
WHERE field5 IN ('AAL', 'IAL')
Run Code Online (Sandbox Code Playgroud)

或者它没有任何区别?

sql select where-clause sql-like

1
推荐指数
1
解决办法
2431
查看次数

在Java Servlet MySQL中使用LIKE进行MySQL SELECT错误

我使用Java 7 Servlets和Tomcat 7作为服务器,使用MySQL作为数据库.我正在尝试对用户进行一些搜索,但是我的SQL中可能存在一些问题,有人能看到问题吗?关键是lasNameFragment是姓氏的片段,我搜索在姓氏中有这个片段的用户.没有LIKE的列表用户工作正常,所以问题必须在这两行中的某个地方.

preparedStatement = connection.prepareStatement("SELECT users.id AS id, login, name, lastname, password, sex, birth, info WHERE lastname LIKE ?;");
    preparedStatement.setString(1, "%" + lastNameFragment + "%");
Run Code Online (Sandbox Code Playgroud)

错误:

com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE lastname LIKE '%Mot%'' at line 1
Run Code Online (Sandbox Code Playgroud)

Mot是lastnamefragment的值,我得到表单搜索输入.

mysql jdbc prepared-statement sql-like

1
推荐指数
1
解决办法
806
查看次数

使用LIKE运算符分组并忽略NULL值

我写了一个查询来对税项进行分组,如果税是空的,我不想显示税名.这该怎么做?请检查我的sql server语句:

 SELECT     
   'CENTRAL EXCISE DUTY'    AS 'TaxName',
   SUM(TaxAmount)       AS 'Tax'
 FROM
   PMT_InvoiceTaxAttribute
 WHERE 
   InvoiceID = 100 
   AND TaxAttributeName NOT LIKE '%IBR%' 
   AND TaxAttributeName NOT LIKE '%CST%' 
   AND TaxAttributeName NOT LIKE '%VAT%'
 UNION
 SELECT
   'CST'            AS 'TaxName',
   SUM(TaxAmount)       AS 'Tax'
 FROM
   PMT_InvoiceTaxAttribute
 WHERE 
   InvoiceID = 100   
   AND TaxAttributeName LIKE '%CST%'
 UNION
 SELECT
   'VAT'            AS 'TaxName',
   SUM(TaxAmount)       AS 'Tax'
 FROM
   PMT_InvoiceTaxAttribute
 WHERE 
   InvoiceID = 100   
   AND TaxAttributeName LIKE '%VAT%'
Run Code Online (Sandbox Code Playgroud)

此Query为Output提供如下:

      TaxName                     Tax
   -------------              -----------
  CENTRAL EXCISE DUTY             15000
        CST                       NULL
        VAT …
Run Code Online (Sandbox Code Playgroud)

sql sql-server group-by sql-server-2008-r2 sql-like

1
推荐指数
2
解决办法
1826
查看次数

我正在使用Yii addColumnCondition并希望将默认行为从'='更改为使用LIKE和%

addColumnCondition我使用函数,因为我喜欢它如何形成多个查询的查询.但我在文档中找不到任何改变它的比较操作,从简单= needle到a LIKE %needle%.有一个函数可以执行LIKE,addSearchCondition()但是它意味着获得相同的查询形成结果,我将不得不做一些循环和合并条件,如果有更好的解决方案,我想避免.

这是代码

foreach($query_set as $query){
    foreach($attributes as $attribute=>$v){
        $attributes[$attribute] = $query;
    }
    $criteria->addColumnCondition($attributes, 'OR', 'AND');
}
Run Code Online (Sandbox Code Playgroud)

而我正在形成像这样的条件

(business_name=:ycp0 OR payment_method=:ycp1) AND (business_name=:ycp2 OR payment_method=:ycp3)
Run Code Online (Sandbox Code Playgroud)

那么有没有办法配置使用的功能LIKE %:ycp0%而不是简单的=:ycp0.

任何帮助将不胜感激.

谢谢.

php search criteria yii sql-like

1
推荐指数
1
解决办法
446
查看次数

在T-SQL中是否存在精确的字符串比较?

我已经搜索了很多答案,但我还没有找到以下简单任务的解决方案:

我有一个冗长的TextString,并希望找到与其中的字符串'Text'完全匹配.

TextString LIKE '% Text %'
Run Code Online (Sandbox Code Playgroud)

给出所有出现的'text'和'Text',也开始和/或结束一个单词.我只想要出现'Text'(区分大小写),带有前面和后面的''.

我知道SPACES 的行为LIKE=相对于SPACES 的行为,所以没有必要再次解释这个问题,因为它已在本网站的其他地方完成.

t-sql sql-server equality sql-like

1
推荐指数
1
解决办法
3067
查看次数

在WHERE子句中添加LIKE运算符(动态SQL)

我正在使用Dynamic SQL创建一个将要执行的'SELECT'SQL语句.在我正在创建的SQL语句中,我想使用'LIKE'运算符,但因为它使用了引号'',它与'SELECT'语句开头使用的引号相冲突.

SET @sql = 'SELECT * FROM LogTable WHERE Application LIKE ' + @ApplicationName + ' ;'
Run Code Online (Sandbox Code Playgroud)

假设'@ApplicationName = TestApp',上面的动态SQL'@sql'变量将生成以下SQL语句:

SELECT * FROM LogTable WHERE Application LIKE TestApp ;
Run Code Online (Sandbox Code Playgroud)

这会导致错误,因为"TestApp"周围不存在引号.如何在动态SQL中创建引号,允许使用"LIKE"运算符?如何创建下面的SQL语句:

SELECT * FROM LogTable WHERE Application LIKE 'TestApp' ;
Run Code Online (Sandbox Code Playgroud)

sql sql-server dynamic-sql where-clause sql-like

1
推荐指数
1
解决办法
928
查看次数

Oracle LIKE条件返回空结果

我想在sqlplus中运行"Like query",但查询没有返回预期的结果.这是查询.

select *
from field
where id like 'D.2._';
Run Code Online (Sandbox Code Playgroud)

我期待的结果包括id D.2.1,D.2.2,D.2.3等(但不是D.2.11).

我错过了什么?我需要在Sqlplus和SQL开发人员中使用此查询.

sql oracle sql-like

1
推荐指数
1
解决办法
73
查看次数

在WHERE子句中的CASE表达式中使用LIKE谓词

我有一张名字表:

约翰·
彼得·
彼得-保罗·
玛丽

我有一个这些名称的下拉列表,我在顶部添加了"全部"作为选项.

我想将从下拉列表中选择的名称作为参数传递给where子句.

我想要做的只是如果名称没有作为'全'传递,则只有where子句

SELECT City, State
FROM EmployeeDetails
WHERE @NAME =
              CASE @NAME
                         WHEN 'All' THEN '1=1'
              ELSE (EmployeeDetails.NAME LIKE '' + @NAME + '%')
Run Code Online (Sandbox Code Playgroud)

我不能让这个工作.ELSE语句在单词'LIKE'附近给出错误'语法错误.

查看我发现的其他StackOverflow问题:

  1. CASE语句返回标量值,因此它不喜欢我的LIKE语句.
  2. 将ELSE子句放在单引号中不会返回结果(break where子句)
  3. 尝试执行IF(@NAME ='All')会破坏where子句,在StackOverflow的每个问题中,共识是将IF语句转换为CASE语句.

当运行不在CASE语句中的WHERE子句时,它适用于特定名称,例如:

WHERE (EmployeeDetails.NAME LIKE '' + @NAME + '%')
Run Code Online (Sandbox Code Playgroud)

如果我搜索彼得,它会按预期返回2个结果.玛丽1结果等
我显然无法将'全部'传递给那个人.

sql case where sql-like

1
推荐指数
1
解决办法
49
查看次数

Where子句中的下划线会产生意外结果,为什么?

我想查找所有以开头的表TB_,因此我编写了以下脚本:

select *
from INFORMATION_SCHEMA.TABLES
where TABLE_NAME like 'TB_%'
Run Code Online (Sandbox Code Playgroud)

令我惊讶的是,我得到了以下结果:

TB103_xxx
TB037_bbb
TB104_ccc
Run Code Online (Sandbox Code Playgroud)

我很好奇为什么?

t-sql sql-server sql-like sql-server-2016

1
推荐指数
1
解决办法
67
查看次数