• ベストアンサー

SQL文 について教えて下さい

「Access」で下記のように記述するものを「SQL Server」に置き換えた場合、 どのように記述する事になるのでしょうか。 SELECT Max(CLng(mid(TestId,4,10))) AS MAX_pti_patient_id FROM patient_info WHERE TestCd1 = 1 and TestFlg = 1 どなたか分かる方がいましたら教えて下さい。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • nora1962
  • ベストアンサー率60% (431/717)
回答No.1

SELECT Max( cast( SUBSTRING(TestId,4,10) as INT )) AS MAX_pti_patient_id FROM patient_info WHERE TestCd1 = 1 and TestFlg = 1 を試してください。

lavino72
質問者

お礼

完璧です。 ありがとうございました。

その他の回答 (2)

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.3
lavino72
質問者

お礼

回答ありがとうございます。 あえて書かなかったんですが、SqlserverにはMID関数の変わりにSubStringがあり、そこまでは出来ました。 ただ、clngに変わる物が分からなかったので、質問させて頂きました。

  • NetNeko
  • ベストアンサー率0% (0/1)
回答No.2

Oracle使いがでしゃばりますw (^^;) 内容を解析するところ、 TestId の 4文字目から10文字を 数値に置き換えたものから 最大の値を取得 取得した項目名は MAX_pti_patient_id 取得条件は TestCd1=1 かつ TestFlg=1 のもの 一般的なSQL文に照らし合わせると CLng関数だけ 置き換えてあげれば うまく動くのではないでしょうか? CLng(mid(TestId,4,10))  ↓↓↓ CAST(mid(TestId,4,10) as numeric(10,0)) Oracle使いが SQLServer がんばってみましたw (^^;;;

lavino72
質問者

お礼

回答ありがとうございます。 mid⇒SUBSTRINGで出来ました。 ありがとうございました。

関連するQ&A