これは、(ファイルシステム内の)物理ソースファイルにアクセスせずに独自のソースコードを印刷するプログラムに関する非常に興味深いwiki記事です。記事の例には、CおよびScheme quineプログラムが含まれます(ええ、それらはそのように呼ばれているようです)。ずっと前(約5年)に、「自分自身を返す」SQLクエリを作成できるかどうか尋ねられたのを覚えています。当時はほとんど考えていませんでした(正直言って、まったく考えていませんでした)。しかし、この記事を読んだ後、私はそのことを思い出しました。ここで、その問題を尋ねた人は、自分が何について話しているのかわからなかった可能性が非常に高いという点で、100%信頼できるわけではないことを述べたいと思います。しかし、多分それは可能ですか?したがって、「それ自体を返す」ものが何であれ、クインSQLクエリが存在するかどうかを誰かが知っていますか その文脈で意味するかもしれません。ありがとう。
2429 次
5 に答える
7
SQL Serverのバージョン、ここから:
SELECT Replace(Replace(
'SELECT REPLACE(REPLACE("$",CHAR(34),CHAR(39)),CHAR(36),"$") AS Quine',
Char(34), Char(39)), Char(36),
'SELECT REPLACE(REPLACE("$",CHAR(34),CHAR(39)),CHAR(36),"$") AS Quine')
AS Quine
于 2010-10-23T21:40:36.910 に答える
2
Oracleバージョン:
SELECT REPLACE(REPLACE('SELECT REPLACE(REPLACE("$",CHR(34),CHR(39)),CHR(36),"$") AS Quine FROM dual',CHR(34),CHR(39)),CHR(36),'SELECT REPLACE(REPLACE("$",CHR(34),CHR(39)),CHR(36),"$") AS Quine FROM dual') AS Quine FROM dual
于 2013-11-04T12:07:06.103 に答える
1
『 Oracle SQL Revealed』のいくつかのソリューション。
123バイト
select
replace('@''[@'||chr(93)||''')from dual;','@',q'[select
replace('@''[@'||chr(93)||''')from dual;','@',q]')from dual;
100バイト
select
substr(rpad(1,125,'||chr(39)),26)from dual;select
substr(rpad(1,125,'||chr(39)),26)from dual;
于 2018-11-25T23:36:54.713 に答える
0
これを掘り下げてすみません。MS SQL Serverの最短バージョンは、この131文字の長いクワインです。
DECLARE @ CHAR(65)='DECLARE @ CHAR(65)=#PRINT REPLACE(@,CHAR(35),CHAR(39)+@+CHAR(39))'PRINT REPLACE(@,CHAR(35),CHAR(39)+@+CHAR(39))
于 2018-06-19T07:16:03.480 に答える
0
于 2021-05-19T19:56:30.287 に答える