假设我有一个电话号码表。在此表中,'数字' column(nvarchar)可能包含也可能不包含连字符。如何构造where子句?
例如,记录可能如下所示:
号码|名称
111 |彼得
11-22 |标记
222-33 |约翰
如果我这样做
SELECT Name FROM table WHERE Number = '22233'
我找不到约翰。而且我不知道连字符可能出现在哪个数字之后。
构建WHERE子句以按编号匹配记录的最佳方法是什么?
答案 0 :(得分:1)
[1;5C
答案 1 :(得分:0)
使用STUFF
的另一种方法,如果它总是单-
,那么使用此
SELECT Name FROM table
WHERE Stuff(Number,Charindex('-',Number),1,'') = '22233'
约翰的Replace
方法看起来更优雅
答案 2 :(得分:-1)
除了上述答案,您可以在where子句中使用like
和%
:
SELECT Name FROM table WHERE Number like '%-%'
这将为您提供所有含有hyphon的物品。