我的表中有10,001行,除了一行之外的所有行都以数字开头.我需要找到一个不以数字开头的行,或者甚至不包含数字的行.
所以这就是我所拥有的:
Select col1 from table1 where col1 not like '?%'
Run Code Online (Sandbox Code Playgroud)
这甚至接近了吗?我需要找到没有数字的行...
谢谢!!
更新:我使用的是sqlite数据库
我有一个存储过程来执行记录搜索.
问题是来自UI的一些搜索条件可能是空字符串.因此,当未指定条件时,LIKE语句变得多余.
我怎样才能有效地执行该搜索或Sql Server?或者,它是否优化了LIKE('%%')查询,因为它意味着没有可比较的内容?
存储过程是这样的:
ALTER PROC [FRA].[MCC_SEARCH]
@MCC_Code varchar(4),
@MCC_Desc nvarchar(50),
@Detail nvarchar(50)
AS
BEGIN
SELECT
MCC_Code,
MCC_Desc,
CreateDate,
CreatingUser
FROM
FRA.MCC (NOLOCK)
WHERE
MCC_Code LIKE ('%' + @MCC_Code + '%')
AND MCC_Desc LIKE ('%' + @MCC_Desc + '%')
AND Detail LIKE ('%' + @Detail + '%')
ORDER BY MCC_Code
END
Run Code Online (Sandbox Code Playgroud) 我们如何为以下select sql查询编写LINQ查询:
string brandid="1,2,3"
string bodystyleid="1,2,3"
-------------------
-----------------
select * from car
where brandid in (brandid)
and bodystyleid in (brandid)
----------------------
-------------------
Run Code Online (Sandbox Code Playgroud)
我的具体要求是,如果brandid或bodystyleid为空(如果用户未选中特定搜索选项的任何复选框),则查询应返回该特定条件的所有记录.
请指导我.
谢谢,
保罗
我正在尝试检索所有以SQlite中的任何非字母字符开头的列,但似乎无法使其正常工作.我目前有这个代码,但它返回每一行:
SELECT * FROM TestTable WHERE TestNames NOT LIKE '[A-z]%'
Run Code Online (Sandbox Code Playgroud)
有没有办法检索TestNames的第一个字符不属于字母表的所有行?
初学者问题在这里......
我通过Excel中的Microsoft Query访问Firebird数据库.
我在Excel中有一个包含4位数字的参数字段.我的一个DB表有一个包含9位相位代码的列(TP.PHASE_CODE),我需要返回以指定为参数的4位数代码开头的9位数代码.
例如,如果我的参数字段包含'8000',我需要找到并返回LIKE'8000%'的另一个表/列中的任何阶段代码
我想知道如何在SQL中实现这一点,因为它看起来不像'?' 表示参数可以包含在LIKE语句中.(如果我用4位数字写,查询工作正常,但它不会让我在那里使用参数.)
有问题的陈述是这样的: TP.PHASE_CODE喜欢'?%'
这是我的完整代码:
SELECT C.COSTS_ID, C.AREA_ID, S.SUB_NUMBER, S.SUB_NAME, TP.PHASE_CODE, TP.PHASE_DESC, TI.ITEM_NUMBER, TI.ITEM_DESC,TI.ORDER_UNIT,
C.UNIT_COST, TI.TLPE_ITEMS_ID FROM TLPE_ITEMS TI
INNER JOIN TLPE_PHASES TP ON TI.TLPE_PHASES_ID = TP.TLPE_PHASES_ID
LEFT OUTER JOIN COSTS C ON C.TLPE_ITEMS_ID = TI.TLPE_ITEMS_ID
LEFT OUTER JOIN AREA A ON C.AREA_ID = A.AREA_ID
LEFT OUTER JOIN SUPPLIER S ON C.SUB_NUMBER = S.SUB_NUMBER
WHERE (C.AREA_ID = 1 OR C.AREA_ID = ?) and S.SUB_NUMBER = ? and TI.ITEM_NUMBER = ? and **TP.PHASE_CODE like '?%'**
ORDER …Run Code Online (Sandbox Code Playgroud) 在SQL Server数据库中,我有一个带有很多INNER JOINs语句的View。最后一个联接使用LIKE谓词,这就是为什么它工作太慢的原因。查询看起来像:
SELECT *
FROM A INNER JOIN
B ON A.ID = B.ID INNER JOIN
C ON C.ID1 = B.ID1 INNER JOIN
...........................
X ON X.Name LIKE '%' + W.Name + '%' AND
LIKE '%' + W.Name2 + '%' AND
LIKE '%' + W.Name3 + '%'
Run Code Online (Sandbox Code Playgroud)
我想使用CONTAINS代替LIKE:
SELECT *
FROM A INNER JOIN
B ON A.ID = B.ID INNER JOIN
C ON C.ID1 = B.ID1 INNER JOIN
...........................
X ON CONTAINS(X.Name, W.Name) AND
CONTAINS(X.Name, W.Name2) AND
CONTAINS(X.Name, W.Name3)
Run Code Online (Sandbox Code Playgroud)
我知道CONTAINS的运行速度比LIKE快,并且无法在JOIN语句中使用CONTAINS。在这种情况下或建议中有什么解决方法吗?提前致谢。
我有两个名为company和的表customers.
在company表中有3个字段ID,Company以及Type为:
ID Company Type
1 ABC Running
2 XYZ Current
Run Code Online (Sandbox Code Playgroud)
现在再次在customers表格中我提交了公司和客户的价值,但这里公司的价值提交ID为:
Company Customer Name
1 monty
2 sandeep
Run Code Online (Sandbox Code Playgroud)
现在我想在客户表中搜索公司名称但是当我在搜索框中输入公司名称时它没有显示任何内容,因为公司名称的值在客户tabe中以ID形式显示.我可以实现它.
这是我的搜索查询:
$sql = "Select * from customers where name like '%$term%' or location like '%$term%' or company like '%$term%'";
Run Code Online (Sandbox Code Playgroud) 我在数据库中有两个列,我希望在使用LIKEstatement 匹配之前将它们组合起来.
我的桌子:
|---------------------------------|
| ID | PREFIX | SUFFIX |
|---------------------------------|
| 1 | 31 | 523 |
|---------------------------------|
| 2 | 62 | 364 |
|---------------------------------|
Run Code Online (Sandbox Code Playgroud)
我希望能够提供315和ID 1将被返回.这有什么简单的方法吗?目前我正在拆分搜索字符串并匹配单独的列.
谢谢.
我想,如果要获取所有记录像运营商价值的匹配和为真.
我有桌票.
---------------------------
: id : ticket : user_id :
---------------------------
: 1 : 2546 : 2 :
---------------------------
: 2 : 8475 : 2 :
---------------------------
Run Code Online (Sandbox Code Playgroud)
我正在尝试这个查询
SELECT * FROM `ticket` WHERE `ticket` LIKE '%2546%'
Run Code Online (Sandbox Code Playgroud)
以上查询返回单个结果并且工作正常.但我需要两行,如果像运营商价值的匹配和表有该行的多个记录USER_ID.我试过分组
SELECT * FROM `ticket` WHERE `ticket` LIKE '%2546%'
GROUP BY `user_id `
Run Code Online (Sandbox Code Playgroud)
我知道如果使用user_id = 2而不是like和Group By运算符可以完成 ,但我需要按ticket列过滤.那么这可以在单个查询中实现这种任务吗?