お世話になります。
使用環境はWindows7/DelphiXE2/SQLServer2008Expressです。
とあるTableがあり、その中に文字列20桁のColumnがあります。
Query文を用いてその絞込み検索を行いたいのですが、いい方法が分からず、ご教授願いたく書き込ませて頂きます。
直接Delphiとは関係ないのですが、よろしくお願いします。
さて、その検索についてですが・・・
対象Columnには、例として下記のデータが入っているとします。
01234567890123456789
01234012345678956789
01012323454567678989
01010101010101010101
01234567890123456789
01234012345678956789
01012323454567678989
01010101010101010101
例えば、select Column名 from Table名 group by Column名 とすると、
01234567890123456789
01234012345678956789
01012323454567678989
01010101010101010101
が得られます。
Columnのデータの一部、例えば1桁目から5桁目までだけでGroup byのような絞込み検索する為のQuery文があれば教えて下さい。
例えば1桁目から5桁目だけで絞込みを行って得られる結果が
01234
01012
01010
や、16桁目から18桁目だけで絞込みを行って得られる結果が
567
789
101
等です。
ちなみに現状、普通に一旦、select Column名 from Table名 group by Column名 でQueryを実行し、
slist: TStringList;
を用意し、
Open;
First;
while not Eof do begin
s:=Copy(FieldByName('Column名').AsString,1,5);
if slist.IndexOf(s)=1 then begin
slist.Add(s);
end;
Next;
end;
といった処理をしています。
よろしくお願い致します。
よく解りませんが、こういう事 (↓) ですか?
[SQL - GROUP BY 集計]
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=28192&forum=26
もしや、SUBSTRING ですかね?
select SUBSTRING(Column名,1,5) from Table名 group by SUBSTRING(Column名,1,5)
[【SQL文字列関数】SUBSTR / SUBSTRING ? 文字列を部分抽出する (Oracle、SQL Server)]
http://www.sql-master.net/articles/SQL412.html
DEKOさん、おかぽんさん、ありがとうございました。
SUBSTRINGでうまくいきました。
感謝感謝ですm(_ _)m