2016-01-29 65 views
0

我希望有人能幫助我的腳本/查詢NULL值的行,目標DB是MySQL的。SQL - 選擇包含在非空列

我使用的數據庫不符合它自己的約束,並在被轉移到MS SQL的過程。我期望找到的是一個查詢,該查詢可以針對一個表進行查詢,該表查找不允許空值的列中包含空值的行,這反過來又會有助於SSIS DFT調試時間。

非常感謝。

+0

是否表實際上有限制?你試過什麼了? –

+0

不,有幾個單獨的列可以做,但有些數據不遵守約束條件。目前,當嘗試將數據插入到新數據庫時,我不得不根據錯誤更改約束,因爲新數據庫將強制約束。 – Torrm

+0

你如何確定哪些列應該允許NULL。你的問題對我來說似乎很不清楚。 –

回答

1

嘗試:

SELECT group_concat(`COLUMN_NAME`) as myList 
FROM `INFORMATION_SCHEMA`.`COLUMNS` 
WHERE `TABLE_SCHEMA`='yourdatabasename' 
    AND `TABLE_NAME`='yourtablename' 
-- AND `IS_NULLABLE`='NO' 
into @colname; 
SET @query = CONCAT('SELECT ',@colname,' FROM yourtablename'); 
PREPARE stmt FROM @query; 
EXECUTE stmt; 
+0

有沒有辦法做到這一點,不涉及手動輸入列名?感謝您的協助 – Torrm

+0

列名在此處動態選擇,不涉及手動輸入。但是,這僅適用於一個表,如果您需要爲多個表執行此操作,則需要使用相同的邏輯來動態選擇表名稱。 –

+0

非常感謝我會放棄它! – Torrm