【问题标题】:How to use like operator to find patterns where part of operand is a parameter如何使用 like 运算符查找部分操作数是参数的模式
【发布时间】:2016-03-15 18:48:14
【问题描述】:
我的表格有一个名为 project 的文件,它可以以任何字母、中间的一些数字、破折号和当前财政年度开头。
我想搜索名称以 p 开头并以当前年份结尾的所有项目。
我有一个函数将当前会计年度返回为 int。
我怎么能做到这一点。
我想要类似的东西:
declare @Year int;
set @Year = the output from CurrentFiscalYear function;
select
project
from MyTable
where project like 'P%-@Year'
【问题讨论】:
标签:
sql-server
wildcard
sql-like
【解决方案1】:
使用+ 运算符将变量附加到字符串。由于@Year 属于Int 类型,您需要先将其转换为Varchar,然后再附加'P%-'
试试这个
declare @Year int;
set @Year = the output from CurrentFiscalYear function;
select
project
from MyTable
where project like 'P%-'+cast(@Year as varchar(4))+'
【解决方案2】:
WHERE project like 'P%-' + @Year
我相信这是 sql server 中的正确形式