2015-08-27 45 views
4

我試圖篩選表的某一行與SSDT(上表左鍵點擊,查看數據,排序和過濾)的Visual Studio 2013 SSDT - 編輯數據 - IS NULL不作爲過濾

在這裏,我只需要工作將IS NULL作爲條件添加到nvarchar字段。
但只要我申請過濾器出現錯誤:

Incorrect syntax near the keyword SET

望着通過編輯所寫的,我看到consition是fldName =,沒有我的NULL檢查的跡象

我該怎麼辦查詢它?

這是個結果:

SELECT TOP 1000 [Ktyi_TS002_IdTipoDocumento] , 
[nvc_TS002_TipoDocumento] ,[nvc_TS002_IdFunzioneControllo] ,[bit_TS002_Annullato] 
FROM [dbo].[TS002_TipoDocumento] 
WHERE [nvc_TS002_IdFunzioneControllo] = 

這是在谷歌找到的數據編輯器的一些圖片顯示什麼IAM談論到誰也不知道SSDT:

enter image description here

enter image description here

+0

你可以發佈編輯器的查詢嗎? – user3340627

+0

初始職位編輯 –

+0

你能詳細說明你需要做什麼嗎?你是否需要爲表中的列設置一個約束來表明它可能包含一個空值,或者你是否需要爲該列設置一個默認值爲null? – user3340627

回答

7

它似乎是過濾器不支持IS(NOT)NULL表達式的錯誤。

+0

似乎ssdt有很多錯誤 –

+1

它仍然不被支持。 –

+1

仍然不支持。知道這個問題在很長時間之後仍然存在,並且很少有人關心,這讓我覺得我應該放棄嘗試使用這個工具。 – Michael12345

-1

您可以通過爲該表創建新的SQL查詢並手動輸入「IS NULL」的過濾器來解決此問題。

1右鍵單擊該表
2 - 點擊「新建查詢」
3-類型使用IS NULL作爲過濾器

這應該做工精細的SQL語句。

+0

您認爲如何編輯查詢中的數據?正如我在標題和評論中寫的,我在談論如何在編輯數據表格中過濾行 –

1

這是一個非常醜陋的黑客,但它可能適合你。

看來你需要在=符號左邊的一個列名,以防止過濾器解析器改變查詢。在我的情況下,我正在尋找空值的列是一個整數,所以我需要在左側獲得一個整數。

我還需要一個列,我正在尋找空值不會存在任何非空行的值。在我的情況,這是0

Create MyTable 
( Id int primary key, 
    ... 
    MyNum int 
); 

要在列myNum的空搜索行,我這樣做:

[Id] - [Id] = IsNull([MyNum],0) 

的[ID] - [ID]用於生產0,而不是觸發解析器重新編寫語句爲[MyNum] = stuff

解析器沒有重寫右側,所以NULL值被更改爲0。

我承擔的字符串,你可以做同樣的事情,也許

concatenate([OtherStringCol],'XYZZY') = ISNull([MyStrCol],concatenate([OtherStringCol],'XYZZY')) 

的「XYZZY」部分是用來確保你沒有得到的情況下[MyStrCol] = [OtherStringCol。我假設字符串'XYZZY'不存在於這些列中。

+0

聰明的把戲! – undefined