SQL中是否有类似where*的命令

SQL中是否有类似where*的命令,sql,Sql,以下操作不起作用: DECLARE @jake varchar(30); SET @jake='$%$^$%' SELECT [PlayerID], [Nickname], [UserName], [ClubNumber], [FirstName], [Email], [LastName], [DOB] FROM [Players] WHERE ***** LIKE'%'+@jake+'%' ORDER BY lastname ASC 我正在尝试对所有列使用*键,这

以下操作不起作用:

DECLARE @jake varchar(30); 
SET @jake='$%$^$%'

SELECT [PlayerID], [Nickname], [UserName], [ClubNumber], 
       [FirstName], [Email], [LastName], [DOB] 
FROM [Players] 
WHERE ***** LIKE'%'+@jake+'%' 
ORDER BY lastname ASC 

我正在尝试对所有列使用*键,这样我就不必使用or命令列出所有列。有什么想法吗?

列名没有通配符,至少不是传统意义上的通配符。

没有。您必须详细说明要比较的字段,尽管您可以这样做

WHERE CONCAT(field1, field2, field3, ....) LIKE '%...%'

因为你正在做一个真正的whilecard,比如%…%,这将起作用。如果您使用的是其他类型,如“…%”或“…”,那么这将不起作用。

我想这是t-SQL吧?没有直接的方法可以做到这一点。您必须查询信息模式数据库以获取列,然后构建一个动态SQL查询来执行。我建议您不要这样做,只需明确说明您在查询中使用的列。如果您使用的是MS SQL Server,那么在SQL Server Management Studio中,您可以右键单击对象资源管理器中的表,然后选择脚本表作为->选择到->新建窗口或剪贴板。。这将为您节省大量的键入时间,但您应该具体说明所使用的列。。即使您打算编写动态逻辑来更改返回的列。。对于希望返回不同列列表以保持简单的情况,您应该使用不同的视图。假设他使用的是SQL Server 2012或更高版本-早期版本没有CONCAT