2
A
答えて
1
その絶対的に可能ですが、プロセスは長いですが、私はsys.columns
から列名を取得することにより、各列の データexists
をチェックするloop
を使用しています。それは任意の用語であなたを助けている場合、これを試してください:
ここで私はあなたのサンプル・データの列の1だけ
CREATE TABLE testing(val1 INT, val2 INT, val3 INT)
INSERT INTO testing VALUES
(1, 0, 1),(1, 0, 1),(1, 1, 1)
Table: testing
val1 val2 val3
1 0 1
1 0 1
1 1 1
DECLARE @sql NVARCHAR(500), @list VARCHAR(500)
DECLARE @num INT=1, @col_name VARCHAR(100) = NULL, @cnt INT
WHILE(@num<=3)
BEGIN
SELECT @col_name = name FROM sys.columns
WHERE object_id = OBJECT_ID('testing') and column_id = @num
SET @cnt = 0
SET @sql = '
IF NOT EXISTS(SELECT 1 FROM testing WHERE ' + @col_name + ' = 0) SET @cnt = 1'
EXEC sp_executesql @sql, N'@cnt INT OUT', @cnt OUT
IF @cnt = 1
SET @list = COALESCE(@list + ',', '') + @col_name
SET @num = @num+1
END
SET @sql = '
SELECT ' + @list + ' FROM testing'
EXEC(@sql)
OUTPUT:
val1 val3
1 1
1 1
1 1
関連する問題
- 1. 条件を使用してテーブルから列名を取得する方法
- 2. SQL Serverの列名を使用して列の値を取得します
- 3. 結合テーブルのSQL Server 2000の条件
- 4. sqlから配列を取得して条件をチェックする
- 5. SQL Serverの:条件
- 6. 特定の条件に従ってSQL Serverからデータを取得します
- 7. マップされたテーブル(Sql)を使用してマップされた列名を取得
- 8. SQL Serverで条件が区切られた列の条件
- 9. 条件を使って行列から列名を取得する
- 10. SQL Serverストアドプロシージャのパラメータを使用してテーブル名を渡す
- 11. SQLテーブルから別のテーブルの条件を使用してクエリを行う
- 12. SQLテーブルの列名をデータとして取得しますか?
- 13. joinテーブル条件でfindAllByを使用してデータを取得する方法
- 14. データベースからテーブルを使用して列名を取得する
- 15. 配列を使用してSQL Server列の最大長を取得します
- 16. SQL Server:動的テーブル名を使用してストアドプロシージャを挿入
- 17. SQL ServerとFIREDACを使用した結合クエリの列からテーブル名を取得する方法は?
- 18. 条件 - SQL Server 2008の
- 19. SQL Serverの条件NULLは
- 20. SQL Serverの:条件は、ストアドプロシージャ
- 21. SQL ServerストアドプロシージャのIF条件
- 22. SQL Serverの+条件は
- 23. SQL Server - 条件との和
- 24. SQLマックス日、MS SQL Server 2008を使用して、列名
- 25. sysobjectsテーブルのテーブル名を使用してSQL Serverビューを作成します。
- 26. SQL同じ条件で同じテーブルに参加してカウントを取得
- 27. 条件に基づいてSQL Serverの列をシフトする
- 28. 条件を更新したSQL Server
- 29. 別のテーブルから値と列名を取得してSQL Serverテーブルに値を挿入する方法
- 30. sql query pre条件でデータを取得
どれも実際にこの条件を満たすように表示されませんが、いずれにしても値を各列をチェックしていますこの要件に基づいて結果セットに表示される列を選択するには、動的SQLが必要になると思います。 –