我有一個表(students_all
),其中包含4列如下: -如何搜索表中所有列的特定值?
- student_name
- 年齡
- student_id數據
- 類
現在我怎麼可以搜索有關特定值,例如'left'
在一個查詢的所有列中使用SQL Server 2008。
我的意思是如何使類似的Excel(按Ctrl +˚F)找到所有列的任何值。
我有一個表(students_all
),其中包含4列如下: -如何搜索表中所有列的特定值?
現在我怎麼可以搜索有關特定值,例如'left'
在一個查詢的所有列中使用SQL Server 2008。
我的意思是如何使類似的Excel(按Ctrl +˚F)找到所有列的任何值。
SELECT *
FROM students_all as t
WHERE t.student_name == 'left'
OR t.age == 'left'
OR t.student_id == 'left'
OR t.class == 'left'
沒有一個「快」的方式在同一時間檢查每個colums,您需要檢查每1by1所在科拉姆!
感謝您的回覆,我發現此查詢 SELECT * FROM [Table Name] WHERE CONTAINS(*,'value'); 但它需要進行建立全文目錄和全文檢索 –
select * from students_all where left (
student_name
age
student_id
class
如果所有列字符串類型
您的查詢是否有效?我想不是 ;)。 –
我的理解,就是你想要的任何表中的
的列對於具有價值left
數據,可以使用
這將檢查給你的行至少有一列值left
但我想要得到它包含單詞left
的,你需要改變所有這些爲WHERE
條件COLULMN_NAME LIKE %left%
希望這將有助於數據。
SELECT * FROM students_all as std
WHERE
std.student_name = 'left'
OR std.age = 'left'
OR std.student_id = 'left'
OR std.class = 'left'
有很多方法來檢查發現類似的東西在一個SQL的一個特殊的表,所以我建議是這樣的:
SELECT *
FROM students_all
WHERE student_name + age + student_id + class LIKE '%left%'
但我用這一個動態的方式:
DECLARE @TableName nvarchar(256) = 'Table_1'
DECLARE @Find nvarchar(50) = '1'
DECLARE @sql nvarchar(max) = ''
SELECT @sql = @sql +
CASE
WHEN @sql = '' THEN ''
ELSE '+ '
END + 'CONVERT(nvarchar(max), ISNULL(' + cols.COLUMN_NAME + ', '''')) COLLATE DATABASE_DEFAULT '
FROM INFORMATION_SCHEMA.COLUMNS cols
WHERE cols.TABLE_NAME = @TableName
SELECT @sql = 'SELECT * FROM ' + @TableName + ' WHERE ' + @sql + 'LIKE ''%' + @Find + '%'''
EXEC(@sql)
我覺得這個earlier post是OP的嘗試提到的。 但是,它需要修改才能從1個特定表中進行搜索。
首先你需要標記SQL Server而不是MySQL。他們是不同的。其次,您需要更具體地瞭解您需要如何查詢您的表格。在excel中沒有像ctrl + f這樣的東西。 – BICube
'SELECT * WHERE column1 ='left'OR column2 ='left'OR ...' – moffeltje
SQL是關於*結構化數據的 - 其中每列中的(隱含)類型的數據是不同的。因此,沒有多少工具可以協助查詢*列(因爲這種比較通常沒有意義)。你對Excel的引用可能在這裏告訴你 - 儘管表面的相似之處,SQL中的表與Excel中的工作表完全不同。如果你發現自己在Excel中很難做到你可以輕易做到的事情,也許你選擇了錯誤的工具來完成這項工作? –