データベーステーブルの行に次のようなエントリがあります。文字の前にユニークな値の数を見つける
101 - 1
101 - 2
101 - 3
102 - 1
102 - 2
102 - 3
103
私は101
と102
は-
前に数だけ存在しているので、「3」のように、カウント用SELECT
クエリの結果を取得する必要があります。
文字の前にdbテーブルの列で一意の値を見つける方法はありますか?
編集:-
がなくてもエントリがあります。
データベーステーブルの行に次のようなエントリがあります。文字の前にユニークな値の数を見つける
101 - 1
101 - 2
101 - 3
102 - 1
102 - 2
102 - 3
103
私は101
と102
は-
前に数だけ存在しているので、「3」のように、カウント用SELECT
クエリの結果を取得する必要があります。
文字の前にdbテーブルの列で一意の値を見つける方法はありますか?
編集:-
がなくてもエントリがあります。
エントリはいつもあなたが私たちを提供しているフォーマットを持っている場合は、あなただけの位置を見つけるために持っている「を - 」文字、値を分割し、最初のn文字を取得し、
異なる値をカウントこの、SQL Serverのために働くそうでない場合は、使用しているDBMS何を私たちに通知したり、DBMSのものと機能を置き換える自分で
SELECT COUNT(DISTINCT SUBSTRING(val,0,CHARINDEX('-', val))) from YourTable
ありがとうございました! :)私は 'CHARINDEX'を' INSTR'に置き換えました。 – Kuttoozz
create table T1
(
id int primary key identity,
col1 varchar(20)
)
insert into T1 values('101 - 1'),('101 - 2'),('101 - 3'),('102 - 1'),('102 - 2'),('102 - 3')
select SUBSTRING(col1,0,CHARINDEX(' ',col1)) as 'Value',count(*) as 'Count' from T1 group by SUBSTRING(col1,0,CHARINDEX(' ',col1))
あなたの返信ありがとう:) – Kuttoozz
は、1つの列の値の多くが付いている行、または複数のです列、または複数の行? – jarlh
エントリはいくつかの行にあります – Kuttoozz
最初に " - "の列ベースを分割し、一時テーブルに出力を格納し、1列に基づいてグループを使用する必要があります。 – Darshak