SQL Server

SQLでProject Euler − Problem 04

PostgreSQL なら文字列をテーブルに変換出来るからもっとスマートになりそう。 SQL Server だと桁数を知ってる上での書き方になります。 他に良い方法あるかな? /** 【問題】 左右どちらから読んでも同じ値になる数を回文数という。 2桁の数の積で表される…

SQLでProject Euler − Problem 03

SQL Server では暗黙的なデータ変換の悪影響で下記SQLでは問題が解けません。 勝手なデータ型変換をやめさせる事が出来れば下記SQLでデータ型を全部 decimal(12,0) とかにすれば解けるかと思われます。 SQL Serverもまだまだだ。 個人的にはPostgreSQL最強と…

SQLで素数生成

素数生成が遅いのと、上限を定めないと行けないのがいまいち気に入りません。 もっと良い方法があればよいけれども・・・ WITH temp(p) AS ( SELECT 2 UNION ALL SELECT (CASE t.p WHEN 2 THEN 3 ELSE t.p + 2 END) FROM temp t WHERE (t.p + 2) <= 100000 )…

SQLでProject Euler − Problem 06

/** 【問題】 最初の10個の自然数について、その和の二乗と、二乗数の和は以下の通り。 1&#178; + 2&#178; + ... + 10&#178; = 385 (1 + 2 + ... + 10)&#178; = 3025 これらの数の差は 3025 - 385 = 2640 となる。 同様にして、最初の100個の自然数について…

SQLでProject Euler − Problem 02

PostgreSQLのgenerate_table?が欲しいなーと思っていましたが、再帰SQLがあれば問題ないかも! ただネスト数が多すぎるとどうなるかがまだ見えません。■ 新バージョン /** 【問題】 フィボナッチ数列の項は前の2つの項の和である。 最初の2項を 1, 2 とすれ…

SQLでProject Euler − Problem 01

再帰SQLを使ってみました。 シーケンスチックな感じで使えてとても良い感じです。 しかも分かりやすい!■ 新バージョン /** 1,000 未満の 3 or 5 の倍数になっている数字の合計を求めよ。 **/ WITH Temp (n) AS ( (SELECT 1) UNION ALL SELECT n+1 FROM Temp…

SQL Server 2000 DTS のバグ 「CSVインポートが正常に出来ない」

■ エラーメッセージ 列区切り記号が見つかりませんでした。■ 現象 以下の文字を含むCSVをインポートしようとするとエラーになる。 ∬ ■ 解決方法? ダブルインテグラルの後の全角スペース「 」を半角に変えることで、取り込みが可能となる。