Sql 如何检查列是否包含数字以外的值

Sql 如何检查列是否包含数字以外的值,sql,sql-server,null,sql-like,Sql,Sql Server,Null,Sql Like,我想检查该列是否包含数字以外的值。我希望这个查询也能打印出空值,但事实并非如此。我知道该列包含空值。 如何更改此查询以将空值也作为输出?提前谢谢你 SELECT DISTINCT [1001account], [5028account], Balancesheettype FROM [Cris_Ocean_tmp].[dbo].[NiiStressTest2018_v2_PUBLISHED_201812_CC_0326] WHERE (StresstestaccountEnabled LIKE

我想检查该列是否包含数字以外的值。我希望这个查询也能打印出空值,但事实并非如此。我知道该列包含空值。 如何更改此查询以将空值也作为输出?提前谢谢你

SELECT DISTINCT [1001account], [5028account], Balancesheettype
FROM [Cris_Ocean_tmp].[dbo].[NiiStressTest2018_v2_PUBLISHED_201812_CC_0326]
WHERE (StresstestaccountEnabled LIKE '%Yes%' AND BalancesheetAmount <> 0) AND (
    [1001account] NOT LIKE '%[0-9]%' OR
    [5028account] NOT LIKE '%[0-9]%'
)
选择不同的[1001科目]、[5028科目]、余额表类型
来自[Cris_Ocean_tmp].[dbo].[NiiStressTest2018\u v2\u出版\u 201812\u CC\u 0326]
其中(如“%Yes%”和余额表金额0)和(
[1001帐户]与“%[0-9]”或
[5028帐户]与“%[0-9]”不同
)

x与“%[0-9]”不同。
将不匹配
ABC123
(其中包含除数字以外的值)。在SQL Server中,您可以使用
[^…]
;您需要单独检查空值:

WHERE column1 LIKE '%[^0-9]%' OR column1 IS NULL

使用mysql ifnull语句:

选择DISTINCT
[1001科目],[5028科目],余额表类型
从…起
XXX
哪里
(如“%Yes%”和余额表金额0一样进行压力测试核算)
及
(
IFNULL([1001account],0)与“%[0-9]”不同
或
IFNULL([5028account],0)与“%[0-9]”不同
)

如果您有SQL Server 2012+,则可以使用


要返回无效数字的记录(包括
NULL
),请执行类似于
的操作,其中TRY_PARSE(val AS INT)为NULL
。当然,性能可能会受到影响,但几乎所有其他解决方案都会受到影响。

请提供表的结构和示例输入/输出数据。
where ISNULL(column,'1') LIKE '%[0-9]%'
where ISNULL(column,'1') LIKE '%[0-9]%'