我沒有這樣的表來測試,假設沒有'x'
作爲任何字段中的數據,我認爲這應該在Sql-Server
上工作; (DEMO)
注:我已篩選keyColumn作爲c.name != 'keyColumn'
DECLARE @S NVARCHAR(max), @Columns VARCHAR(50), @Table VARCHAR(50)
SELECT @Columns = '66', --Number of cols without keyColumn
@Table = 'myTable'
SELECT @S = ISNULL(@S+'+ ','') + 'isnull(convert(nvarchar, ' + c.name + '),''x'')'
FROM sys.all_columns c
WHERE c.object_id = OBJECT_ID(@Table) AND c.name != 'keyColumn'
exec('select * from '[email protected]+' where ' + @S + '= replicate(''x'',' + @Columns + ')')
來源
2013-01-23 20:55:06
Kaf
您必須手動完成。你需要列出所有的列。您可以使用TSQL生成此列表,並通過查找表模式執行它,然後生成列出所有67列的TSQL。但沒有一種簡單的方法可以在一個語句中檢查多個列的值,如'* IS NULL' –
您使用的是什麼RDBMS和版本? – Lamak
這是SQLServer 2005:'[。我想我可能不得不單獨做。 –