web-dev-qa-db-ja.com

SQLで123456番号の最初の3桁を取得するにはどうすればよいですか?

私のCDRテーブルにCallingPartyというフィールドがあります。このようなデータが含まれています

CallingParty

267672668788

次のような各番号の最初の3つの番号を選択したい

CallingParty

267

8
Cabaas Cabdi

CallingPartyがint型の場合:

SELECT CAST(LEFT(CallingParty, 3) AS INT)
From CDR
9
Habib

SQL ServerにはLeft()関数がありますが、文字列に対して最も効果的に機能します。 (SQLのvarchar/char)

Select left(cast(267672668788 as varchar), 3)
2
dbrosier

このクエリを使用します。

SELECT SUBSTRING(CAST(CallingParty AS VARCHAR(50)), 1, 3) FROM [CDR]
1
Nick

データ長が変わらない場合は、常に10 *持っている数字で除算できます。

SELECT FLOOR(267672668788 / 1000000000)
=267
0
vfrank66