Benim kişisel tercihi orada ilk yanıta benzer, ancak gözlerim için onun okunabilirliği kolaylaşır:
var statement = con.createStatement
(
'select * from t where ' +
'(t.a1 = 0 and t.a2 >=-1) ' +
'order by a3 desc limit 1'
);
Neredeyse 20 yıldır ben kullanıyorum SQL sözdizimi biçimine yakın bir benzerlik grev :
SELECT *
FROM t
WHERE
t.a1 = 0 AND
t.a2 >=-1
ORDER BY a3 DESC
LIMIT 1
sağında SolDeğerler & sözdizimi denetimi, sol kenarı aşağı eşit kaymaya gözü izin üzerine devam (SQL JavaScript +
veya AND
) tutmak. Bu, soldaki devam ile biraz daha zor - bu şeylerin bir LOT yapmazsanız önemli değil, hangi noktada harcadığınız her kalori biçiminde küçük bir gelişme ile kurtarılmış olabilir bir kalori olduğunu.
Bu sorgu çok basit olduğundan, tümünü SQL biçimine ayırmak, boş alan ve bant genişliği israfıdır; bu nedenle önerilen JavaScript on yerine altı satırdadır. Bir satırı yukarı doğru kıvırmak her biri onu dört çizgi haline getirerek boşlukları kurtarır. Yine de, açık ya da basit bir düzenleme değil.
Burada aptal bir hata yaptım. Dizeler arasında bir boşluk yazmayı unutmak kolaydır. Boşluk varsa SQL deyimi çalışmayacaksa, dizeler arasındaki boşluğa dikkat edin (siz doğru var). – xralf
Neden standart javascript olmadığını açıklar mısınız? Gibi, 'standart' çattı ya da başka türlü '' eksizem '', 'hiç bahsetmediniz mi? –
Bu arada, "select *", özellikle dinamik bir SQL dizesinden sorgu oluştururken kötü bir uygulamadır. Bu, diğer şeylerin yanı sıra bir güvenlik kâbusu olabilir. SQL-enjeksiyonunun sorumluluğunu azalttığınızdan emin olmak için sütunları açıkça belirtmek ve bir veritabanı prosedür çağrısı veya tablo değerli fonksiyon çağrısı kullanmak çok daha iyi bir uygulamadır. SQL Server'da, dinamik SQL her zaman sp_executesql kullanmalıdır. – devinbost