T-SQLを使用して、最後の3つの文字をvarcharカラムに追加するにはどうすればよいですか?T-SQLサブストリング - 最後の3文字
ので、列のテキストは、IDS_ENUM_Change_262147_190
であり、私はあなたが必要とするすべてです190
T-SQLを使用して、最後の3つの文字をvarcharカラムに追加するにはどうすればよいですか?T-SQLサブストリング - 最後の3文字
ので、列のテキストは、IDS_ENUM_Change_262147_190
であり、私はあなたが必要とするすべてです190
SELECT RIGHT(column, 3)
を必要としています。
同じようにLEFT()
を実行することもできます。
RIGHT()
がインデックスを使用できないことをWHERE
句で使用している場合は、注意してください。
あなたがいずれかの方法を使用することができます:それについて考えるために多くの方法が常に優れているので
SELECT RIGHT(RTRIM(columnName), 3)
OR
SELECT SUBSTRING(columnName, LEN(columnName)-2, 3)
他の方法よりも有利な方法がありますか?そして、RTRIMは必要ですか(私に余分なようです)? – noelicus
仕事はいくつかのやり方で行うことができ、ここでは共通の2つの方法を使って示しました。第1のケースは第2の方法より速い。 RTRIMは必須ではありません。右側の余分なスペースを省略するために使用されます。ありがとう –
を:
select reverse(substring(reverse(columnName), 1, 3))
いいえ、それ以上に良いとは限りません。 –
あなたはそうです。あなたは何をしようとしている仕事を達成するために必要なすべてのツールを常に持っています。知識は力と同等ではない、と私は推測する。 –
私はそれが何を意味するのかは分かりません。あなたが提案するソリューションは不必要に複雑であり、正しい解決策ではないという状況はありません。したがって、それは悪いです。 –
declare @newdata varchar(30)
set @newdata='IDS_ENUM_Change_262147_190'
select REVERSE(substring(reverse(@newdata),0,charindex('_',reverse(@newdata))))
を===説明===
私はこのように書か読むためにそれが簡単に見つかりましたspecifの文字が最初に出現する(すなわち、テキスト
SELECT
REVERSE(--4.
SUBSTRING(-- 3.
REVERSE(<field_name>),
0,
CHARINDEX(-- 2.
'<your char of choice>',
REVERSE(<field_name>) -- 1.
)
)
)
FROM
<table_name>
を与えるために反転した文字列を逆あなたが特に所望の文字で終わる文字列を検索する場合、これはあなたを助けるでしょう。..
select * from tablename where col_name like '%190'
これは質問に答えません。 OPは、190のような特定の文字列ではなく、最後の3文字を取得する方法を知りたいと考えています。 – BradleyDotNET
大量のデータをこのように検索する場合は、インデックスの使用を回復する方法があります。逆順の文字列である計算列を作成します。次に、右(最下位)の3文字が左(最上位)の3文字になりました。その後、その列を索引付けし、 'LEFT(反転、3)=逆転( '190')を探します。 (私は退屈だ、教えてくれない?) – MatBailie
ありがとう! – Jared