Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何在字符串中找到字符串“NULL”?_Sql - Fatal编程技术网

Sql 如何在字符串中找到字符串“NULL”?

Sql 如何在字符串中找到字符串“NULL”?,sql,Sql,我希望找到字符串NULL或NULL,除非下一个字母是O或A,即NULLO和NULLA是ok。到目前为止,我已经提出了以下建议,但并不完全符合我的要求: DECLARE @VAR VARCHAR(255) SET @VAR = 'NULL' SELECT @VAR WHERE @VAR LIKE '%NULL[^OA]' 比如: DECLARE @VAR VARCHAR(255) SET @VAR = 'NULL' SELECT @VAR WHERE @VAR LIKE '%NULL%' AND

我希望找到字符串NULL或NULL,除非下一个字母是O或A,即NULLO和NULLA是ok。到目前为止,我已经提出了以下建议,但并不完全符合我的要求:

DECLARE @VAR VARCHAR(255)
SET @VAR = 'NULL'
SELECT @VAR WHERE @VAR LIKE '%NULL[^OA]'
比如:

DECLARE @VAR VARCHAR(255)
SET @VAR = 'NULL'
SELECT @VAR WHERE @VAR LIKE '%NULL%'
AND @VAR NOT LIKE '%NULL0%'
AND @VAR NOT LIKE '%NULLA%'
比如:

DECLARE @VAR VARCHAR(255)
SET @VAR = 'NULL'
SELECT @VAR WHERE @VAR LIKE '%NULL%'
AND @VAR NOT LIKE '%NULL0%'
AND @VAR NOT LIKE '%NULLA%'
我会选择:

 REPLACE(REPLACE(@VAR,'NULLA',''),'NULLO','') LIKE '%NULL%'
我会选择:

 REPLACE(REPLACE(@VAR,'NULLA',''),'NULLO','') LIKE '%NULL%'
您可以使用CHARINDEX

您可以使用CHARINDEX


这似乎对我起了作用: 从nulls_表中选择*,其中null_字段与'null[OA]%不同

我用以下值创建了一个表:

ANULL
ONULL
NULLA
NULLO
ANULLA
NULL
NULLOXXX
然后选择返回

ANULL
ONULL
ANULLA
NULL
它消除了NULLA、NULLO和NULLOXXX,这似乎是OP想要的
查找字符串NULL或由任何字符包围的NULL,除非下一个字母是O或A

这似乎为我解决了问题: 从nulls_表中选择*,其中null_字段与'null[OA]%不同

我用以下值创建了一个表:

ANULL
ONULL
NULLA
NULLO
ANULLA
NULL
NULLOXXX
然后选择返回

ANULL
ONULL
ANULLA
NULL
它消除了NULLA、NULLO和NULLOXXX,这似乎是OP想要的
查找由任何字符包围的字符串NULL或NULL(下一个字母为O或A时除外)

请显示所需的输入和输出?请显示所需的输入和输出?但如果有NULLOXXX,它将返回XXX。这是预期的吗?@Diego:LIKE表达式不返回字符串,它是一个测试,因此它返回SQL布尔值true、false或null。这里像“%NULL%”一样的“xxx”将返回false,这是OP期望IMO的结果。但是如果您有NULLOXXX,它将返回xxx。这是预期的吗?@Diego:LIKE表达式不返回字符串,它是一个测试,因此它返回SQL布尔值true、false或null。这里像“%NULL%”这样的“xxx”将返回false,这是OP期望的结果。