フィールドの属性が文字列の場合 like %という形式で
ワイルドカードを指定できると思います.
数値データ(integer,bigintなど)のワイルドカードは存在するのでしょうか?

Web検索などで調べたのですが,わかりませんでした.
お教えください.

A 回答 (2件)

ワイルドカード(というより、パターンマッチング)は文字列にしか使用できません。


どうしても数値フィールドで LIKE を使用したいのであれば、数値フィールドをto_charなどで一度文字列に変換し、それに対して LIKE を使用すれば良いと思います。
    • good
    • 0

何でも良い場合には指定する必要もないので、


多分0<=x<=10の様な範囲の指定の仕方を訊いているのだと思いますが、そのような場合には
BETWEENを使います。

numdata BETWEEN 0 AND 10
これは、
0 <= numdata AND numdata <= 10
と同じです。
見当違いだったらすみません
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q「代」と「台」の使い方

例えば年齢の場合、
20代、30代、と「代」を使いますが
時間の場合は
14時台、15時台と「台」を使うようです。

私はずっと
時間も「代」だと思っていたのですが
なぜ「台」を使うのでしょうか?
「14時代」だと、「時代」になってしまうからですか?
よろしくお願い致します。

Aベストアンサー

台:ANo2さんの通り
代:そうではなく(台ではなく)年齢・世・時代・世代・人生等時間軸を指す場合は「代」を慣用的に使います、国歌の「君が代」も然うだし、歌詞にも千代に八千代に(千年も八千年も)の意で使われているようです。

Q同一フィールドの違う値ごとに集計・それぞれ別フィールドに表示したい

初心者です。 どなたかご教授いただけると助かります。
=====

=table1=
usercd point class
1 100 5
2 200 5
1 500 5
3 150 11

=table2=
usercd point class
1 150 11
2 700 5
3 200 11

のように、データが2つのテーブルに分かれています。

table1とtable2をUNIONして、usercd ごとの各class の point 合計を表示させたいと思います。

=結果(として期待しているもの)=
usercd class5合計 class11合計
1 600 150
2 900 0
3 0 350

==========

UNION して 片方(例:class5) の合計を集計することは出来ました。

=出来たsql=
SELECT "usercd",Sum("point") FROM
(SELECT * FROM "table1" UNION ALL SELECT * FROM "table2") AS "sumpoint5"
WHERE "class" = '5'
GROUP BY "usercd";

しかし、それぞれの合計を一度に集計する方法がわかりません。

どうぞよろしくお願いいたします。

初心者です。 どなたかご教授いただけると助かります。
=====

=table1=
usercd point class
1 100 5
2 200 5
1 500 5
3 150 11

=table2=
usercd point class
1 150 11
2 700 5
3 200 11

のように、データが2つのテーブルに分かれています。

table1とtable2をUNIONして、usercd ごとの各class の point 合計を表示させたいと思います。

=結果(として期待しているもの)=
usercd class5合計 class11合計
1 600 150
2 900 0
3 0 350

=====...続きを読む

Aベストアンサー

既に解決したと思いますが...


SELECT usercd,
Sum(CASE class WHEN 5 THEN point ELSE 0 END) AS class5,
Sum(CASE class WHEN 11 THEN point ELSE 0 END) AS class11
FROM
(SELECT * FROM table1 UNION ALL SELECT * FROM table2) as T1
GROUP BY usercd
ORDER BY usercd;

これでどうでしょうか?
試してみたところご希望の結果が返ってきました。

Q60代男性のLDLの数値の標準値は幾つが良いの?

以前にも父親の悪玉コレステロール値(LDL)が高いと相談したのですが、8/5に血液検査をして、今日結果が出たのですがLDLの数値が158でした。60代だと120以下が正常値だと言われたそうです。

大豆製品を積極的に取り、卵、内臓系等コレステロール値を上げるものはほとんど食べていません。(血液検査前から)

父は身長160cm台 体重60キロ台です。血圧も正常範囲内です。納豆、豆腐、コレステロール値を下げるヨーグルト、野菜ジュースを摂取しています。

ウォーキングも1時間土手を歩いています。後は何をすれば良いでしょうか?

お勧めの健康法等あれば教えて下さい

※LDLを下げるお茶を勧めましたが「苦い、好きじゃない」と拒否されました

Aベストアンサー

コレステロールの多くは必要に応じて肝臓で合成されます。体は食べ物由来のコレステロールが増えれば肝臓での合成を減らし、減れば合成を増やし必要量を確保しようとします。体が誤作動をおこして必要もないのに勝手にコレステロールを増やすことはしません。つまりお父様には過不足のない値です。元気にすごしておられればいまのままで自然ですの基準値にとらわれることはありません。

血圧なんかもそうですが、そもそも人それぞれ個性があり生き方が違いますので基準値なんてないのです。

Qtext型のデータをintegerにキャストしたいのですが…

お世話になります。

postgres+php4で現在開発をしています。
テーブル設計を間違っていたようで、年月が6桁の数値(200404 等)で入る項目をtext型で作っています。

この値を、where句の中でintegerとして扱いたいのですが、where句の中でキャストは出来ないものでしょうか?
sqlは初心者でよく分かりません…

どなたかアドバイスお願い致します。

Aベストアンサー

>select * from テーブル名
>where 年月 < '200101' and ...(略)...
>上記の書き方は正しいのでしょうか…

文字列同士の比較をしているので「構文的には」正しい書き方です。

但し「構文的には正しい書き方」であっても、それが期待した結果を返すとは限りません。

今回のように「常に6桁のデータが入力されている事が保証されている」場合は問題はありませんが、6桁に満たないデータがあった場合は、期待した結果と違う結果になります。

例えば、4桁のデータを6桁のデータと比較してみましょう。数値扱いで 9999 < 200001 は真ですが、文字扱いだと '9999' < '200001' は偽になります。

この問題を回避するには、9999 を '009999' と入力させ、データが常に6桁になるようにする必要があります。

今回のケースでは「常に6桁同士の比較演算」との保証があるので
select * from テーブル名
where 年月 < '200101' and ...(略)...
で期待した結果になり問題はありませんが、入力されたデータの桁数が不定の場合は注意が必要です。

>select * from テーブル名
>where 年月 < '200101' and ...(略)...
>上記の書き方は正しいのでしょうか…

文字列同士の比較をしているので「構文的には」正しい書き方です。

但し「構文的には正しい書き方」であっても、それが期待した結果を返すとは限りません。

今回のように「常に6桁のデータが入力されている事が保証されている」場合は問題はありませんが、6桁に満たないデータがあった場合は、期待した結果と違う結果になります。

例えば、4桁のデータを6桁のデータと比較してみまし...続きを読む

Q血圧120「だい」の「だい」は、「台」または「代」のどっちですか?

血圧120「だい」の「だい」は、「台」または「代」のどっちですか?
単純に年齢の時は、「20代、30代」で、ものを数えるときは、「車100台、200台」と思っていますが、血圧の時ははよくわかりません。
インターネットで調べてみると、「台」の方が多く使われているようですが、確信が持てません。どちらの「だい」が用法としては正しいのでしょうか?
また、その理由や意味なども知りたいです。

Aベストアンサー

共同通信社発行『記者ハンドブック』によりますと、

台=〔数量の大体の範囲を示す〕午後五時台、千円の大台に乗る、百キロ台
代=〔歴史上の期間、家督、年齢などの範囲を示す〕三十(歳)代、二〇〇〇年代、八代将軍
(※『広辞苑』では、年齢に関しては、「台」「代」両方が使えるように書いてありました)

となっています。
なので、血圧の場合は一二〇台となります。
ただ、「一二〇台」と書くと、車か何かのようにも思えてしまうので、単位を入れた方がよいと思います。
血圧の単位は、ミリメートルだったかな? 
普通、あんまり書いたり聞いたりしないので、はっきり覚えていないのですが。

あと、どうしてなのかを説明するのは、私の知識では難しいのですが、
「代」に関しては、時代とか世代の意味がありますから、そこからきているのでしょう。
「台」に関しては、物をのせる道具という意味ですから、そのあたりにヒントがあるように思います。なんとなーく、ニュアンス的には分かるような気がするのですが、文章にするのは難しいです。

QLIKEによる検索について

お世話になります。

id| text
--+--------------
1 |AD(LONG+LONG2+INT)
--+--------------
2 |AD(INT+LONG)
--+--------------
3 |AD(LONG2+INT)
--+--------------
: | :

というテーブル(sample)がありまして、
textカラムの'LONG'だけをを抽出したいのですが、うまく抽出できません(LONG2なども検索されてしまう)。
SELECT * FROM sample WHERE text LIKE '%LONG%' AND text NOT LIKE '%LONG2%'
ではだめなのはわかりましたが、こういう場合、どう検索したらよいのでしょうか?

よろしくお願いいたします。

Aベストアンサー

カテゴリはPostgreSQLなので、まあバージョンだけは明記すべきでしょうな。

厳密に動作確認はしていませんが、マッチする範囲が広い条件を先にすれば、問題ないかと思います。

select * from sample where text not like '%LONG2%' and text like '%LONG%'

Q代か台か

20歳から29歳までの人は
○20代 ×20台 
番号としての20~29は
×20代 ○20台

20歳代 20歳台 
はどちらが正しいのでしょうか。

Aベストアンサー

 ANo.3です。
>もしよろしければ簡単な解説をしていただけないでしょうか。
 小学館「国語大辞典」の例文として「千九百八十年代、十代、三十代」と「二十歳台」が上げられていました。

 ここからは、あまり自信がないのですが、
1.代
1)10年を一世代というくくりで捉え、二十代で20-29歳の人を指す。
 「美しき十代」「二十代の仲間入り」「悲しき五十代」。
2)接尾語として、二十代なら20-29までの年齢を範囲として表わす。
 「ついに二十代に入った」「三十代最後の年」。
2.台
1)物の値段や時間また年齢などを基準となる大体の範囲として表わす。
 「二十歳(はたち)台」「二十(はたち/にじゅう)台」「大台」「千円台」「六時台」。

 このように、話題の人物を意識すれば「二十たち/にじゅう)代」。
 その延長で年齢の範囲としても「二十(にじゅう)代」。
 10年の範囲で年齢をグループとしてくくれば「二十(はたち/にじゅう)台」。したがって「20歳台」を「はたちだい」として呼ぶ以外では「歳台」は余り使わず、そんな場合は「三十路(みそじ)に入る」「五十路(いそじ)を越す」などという言い方がむしろ一般的ではないでしょうか。
したがって
>20歳から29歳までの人は
>○20代 ×20台

これは人としてみればそうですが、年齢そのもの、あるいは一定の年齢の範囲そのものの総称的に見れば、
○20代 ○20台
とできるのではないでしょうか。20代=20台の人というような見方をすれば、ですが。ついに五十歳の大台に乗ったという場合は五十台か五十歳台なのでしょうし、もっと人物よりの話題ならば、例えば「未だ血気盛んな五十代」と表わした方が意味が通りやすいのではないでしょうか。
  

 ANo.3です。
>もしよろしければ簡単な解説をしていただけないでしょうか。
 小学館「国語大辞典」の例文として「千九百八十年代、十代、三十代」と「二十歳台」が上げられていました。

 ここからは、あまり自信がないのですが、
1.代
1)10年を一世代というくくりで捉え、二十代で20-29歳の人を指す。
 「美しき十代」「二十代の仲間入り」「悲しき五十代」。
2)接尾語として、二十代なら20-29までの年齢を範囲として表わす。
 「ついに二十代に入った」「三十代最後の年」。
2.台
1)物...続きを読む

Qpg/plsqlでのカーソルのLIKEの記述方法

連続で投稿まことに申し訳ありません
できればこちらの方を優先的にお返事いただけると幸いです。

ストアドファンクションのDECLARE部で
カーソル部のLIKEのところの記述がうまく検索されません。
ご教授いただけると幸いです。

*このように記述してみました
mycursor CURSOR(key text) FOR SELECT * FROM tabel1 in WHERE id LIKE ''%key%'';

Aベストアンサー

こんばんは。

囲み方が変・・・かな???

%は文字列だけど、Keyは出さないとダメだと思います・・・。
(^^ゞ

Q円錐台の展開図の数値を教えていただきたいです

円錐台の展開図の数値を教えていただけないでしょうか。

同じような質問と回答をいくつか見て自分で計算をしてみたりもしたのですが
いかんせん頭が弱くて答えに辿り着けませんでした...。

製作期間に限りがあり、今すぐに数値を知りたいです。

作りたいサイズは
上の円の直径が66.8mm、
底の円の直径が75.0mmで、
高さが50.0mmです。

皆様のお知恵をお貸しください。
何卒、よろしくお願いいたします。

Aベストアンサー

点Oを中心として半径458.9mmの円と半径408.7mmの円を描き、
中心角29.4°で切り取った扇型OBCの一部ABCD(黒線囲い)が
円錐台の側面になります。
上下の面はそれぞれの直径の円です。(添付図参照)

Qpostgresql.conf を編集したら,起動できなくなりました

OS RedHat、postgresql8.1.5でポスグレのログ設定のために、
postgresql.confを編集しました.(/pgsql/data/postgresql.conf)

デフォルト状態から
log_connections = true
log_statement = true
log_duration = true
log_timestamp = true
のみ変更し、ポスグレを起動したところ、起動できなくなってしまいました.上記部分をコメントアウトすると、正常に起動できます.

何が原因で動かなくなってしまったのか分かりません.
よろしくお願い致します.

Aベストアンサー

PostgreSQL8.1.5文書の中の PostgreSQL8.0 のリリースノートによると、

http://www.postgresql.jp/document/pg815doc/html/release-8-0.html
<文中抜粋>
サーバ設定パラメータlog_pid、log_timestamp、log_source_portが、
より柔軟なlog_line_prefixに置き換えられました。

とありますので、たぶん「log_timestamp = true」の問題だと思います。

ここだけコメントアウトして起動確認をしてみる。
あるいは、log_line_prefix を使用する。
で解決できると思います。

いかがでしょう。

参考URL:http://www.postgresql.jp/document/pg815doc/html/release-8-0.html


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング

おすすめ情報