【发布时间】:2016-07-21 04:05:16
【问题描述】:
我在SQL Server 2005 中有一个包含数字和characters 的列
注意:这里character 表示除数字以外的任何内容。
我需要列出所有包含字符的记录(数字除外)。如果记录中没有数字,则以下查询将列出记录。但是我需要列出所有包含字符的记录,无论它是否有数字。
如何修改此查询以返回包含至少一个字符的所有记录?
参考:
- How would I determine if a varchar field in SQL contains any numeric characters?
- SQL query for finding rows with special characters only
代码
DECLARE @WorkOrderHistory TABLE (WorkOrder VARCHAR(10))
INSERT INTO @WorkOrderHistory (WorkOrder) VALUES ('123456') --EXCLUDE from result
INSERT INTO @WorkOrderHistory (WorkOrder) VALUES ('abvc@@@') --Need to list in result
INSERT INTO @WorkOrderHistory (WorkOrder) VALUES ('a+bvc1234') --Need to list in result
INSERT INTO @WorkOrderHistory (WorkOrder) VALUES ('++') --Need to list in result
INSERT INTO @WorkOrderHistory (WorkOrder) VALUES ('$1') --Need to list in result
INSERT INTO @WorkOrderHistory (WorkOrder) VALUES ('1.2') --Need to list in result
--Any record without a number
SELECT TOP 10 *
FROM @WorkOrderHistory WO
WHERE WO.WorkOrder NOT like '%[0-9]%'
【问题讨论】:
-
请提供示例输出,即您希望查询返回的结果。
-
@tsHunter 用预期的输出更新了问题
-
所以您正在寻找其中没有整数的列? 123.23 或 $2,302 怎么样?
-
@AdmiralAdama 123.23 应该列在结果中。对于我的情况,这不仅仅是一个数字。我将更新问题中的示例。
标签: sql sql-server