小编Doo*_*gle的帖子

使用SQL查询打印素数

我是StackOverflow的新手,并且为打印从2到1000的质数而陷入困境。如果这是最有效的编码方式,则使用以下查询需要输入。

WITH NUM AS (
    SELECT LEVEL N 
    FROM DUAL CONNECT BY LEVEL <= 1000
) 
SELECT LISTAGG(B.N,'-') WITHIN GROUP(ORDER BY B.N) AS PRIMES 
FROM (
    SELECT  N,
            CASE WHEN EXISTS (
                                SELECT NULL 
                                FROM NUM N_INNER 
                                WHERE N_INNER .N > 1 
                                AND N_INNER.N < NUM.N 
                                AND MOD(NUM.N, N_INNER.N)=0
                            ) THEN 
                'NO PRIME' 
            ELSE 
                'PRIME' 
            END IS_PRIME 
        FROM NUM
    ) B 
WHERE B.IS_PRIME='PRIME' 
AND B.N!=1;
Run Code Online (Sandbox Code Playgroud)

我知道这个问题已经被问过多次了,如果有的话,我正在寻求更好的解决方案。需要更多有关如何将其与MySQL / MS SQL / PostgreSQL一起使用的信息。

任何帮助都会使我的理解更好。

mysql sql-server postgresql select subquery

5
推荐指数
1
解决办法
2万
查看次数

函数和分形-递归树-重击!逻辑问题

我正在尝试根据要求构建一棵分形树。出了点问题。请协助。我正在尝试根据要求的水平构建分形树。在这里,水平被跳过。需要了解如何解决该问题。

    #!/bin/bash
declare -A matrix
for ((i=1;i<=63;i++)) do
    for ((j=1;j<=100;j++)) do
        matrix[$i,$j]='_'
    done
done
function update_matrix {
p1=$1
p2=$(echo $2-1|bc)
p1=$(echo $p1-1|bc)
p3=$(echo 2^$p2|bc)
p4=$(echo 2*$p3|bc)
p5=$(echo $p3/2|bc)
p6=$3
for ((q1=$p3;q1<$p4;q1++)) do
        if [ "$(echo $q1-$p3|bc)" -lt "$p5" ]
            then
            q2=$(echo $p6-$(echo $p5-$(echo $q1-$p3|bc)|bc)|bc)
            q3=$(echo $p6+$(echo $p5-$(echo $q1-$p3|bc)|bc)|bc)
            matrix[$q1,$q2]=1
            matrix[$q1,$q3]=1
            #printf '%s' "$q1 $q2 -- $q1 $q3"
            #echo ""
            else
            matrix[$q1,$p6]=1
            #echo $q1 $p6
        fi
done

if [ $p1 -ge 1 ]
then
update_matrix $p1 $p2 $(echo $p6+$p5|bc)
update_matrix $p1 …
Run Code Online (Sandbox Code Playgroud)

linux bash fractals

5
推荐指数
1
解决办法
2103
查看次数

标签 统计

bash ×1

fractals ×1

linux ×1

mysql ×1

postgresql ×1

select ×1

sql-server ×1

subquery ×1