我有一個SQL Server引擎,其中我有一個帶有filter子句的字段。我需要該條款組成以顯示除包含:,-,〜以外的所有行。如何在T-SQL中編寫LIKE以顯示除「:」,「 - 」,「〜」之外的所有行?
我的查詢是:
SELECT 1
WHERE '' LIKE '%[^:-~]%'
它不工作 - 它顯示零行。我也試試這個:
SELECT 1
WHERE 'aa:a' LIKE '%[^:-~]%'
它顯示結果1,這是不希望的結果。
有沒有辦法管理這個?
備註:表達後like
必須是字符串,將被保存在表字段中(對於〔實施例:'%[^:-~]%'
將用作LIKE x.fldFilter
)
編輯:我需要驗證我的發動機內內SQL Server。我有一個參數表。在裏面我有Format
列。對於特定的參數,我需要檢查提供的值是否適合Format
列。
例如:
DECLARE @value AS VARCHAR(1000) = 'aaa:aa';
SELECT 1 FROM dbo.ParameterDefinitions X WHERE @value LIKE X.[Format];
凡X.[Format]
列包含'%[^:-~]%'
。
當我測試一個值時,檢查必須返回1,如果它符合條件,並且不符合要求,則返回1。
所以,如果我測試值'aaa:aa'
甚至' '
它的作品。但是,當我有空字符串(''
)條件不起作用。
不幸的是,我不能改變我的引擎,並且不能用空間來代替''
。我只是想知道爲什麼''
不適合這種情況?
你能否列出你的表中的內容以及你想返回哪些行的示例列表 –
我更新了我的問題@ t-clausen.dk。 –