電話番号のテーブルがあります
example:
4685293
+924685293
1254152
+92 を無視して、最初の 2 つの値を 1 つとして選択する必要があります。
クエリでそれを行うことはできますか、それともコードを介して手動で行う必要がありますか?
ローカルの電話番号を選択するには、RIGHT()関数を使用します
SELECT DISTINCT RIGHT(phone,7) FROM TABLE
無視したいパターンを削除します:
REPLACE(example,'+92','')
さまざまなパターンがあり、常に 3 文字 (+xx) である場合は、次のことができる可能性があります。
CASE WHEN phone LIKE '+[0-9][0-9]%' THEN
RIGHT(phone,LEN(phone)-3)
ELSE
phone
END
最後の 7 文字だけを選択してみてください...
select distinct(substring(phoneno,-7)) from ...
try this
;with cte as(
select replace(ph,'+92','') as replaced,
ROW_NUMBER() over (order by ph) as rn
from [dbo].[ph]
)
select * from cte where rn <3