perilaku varchar dengan spasi di akhir
<p>ketika saya menggunakan varchar dengan spasi, ia mengabaikan spasi di bagian akhir.</p><p>ex:</p><pre><code>declare @x varchar(50) </code></pre><p>ini...</p><pre><code>set @x= 'john' </code></pre><p>...sama dengan...</p><pre><code>set @x= 'john ' </code></pre><p>ini menganggap ini sama. bagaimana saya dapat menyebabkan sistem mengenali ini berbeda?</p>
<p>semuanya sesuai dengan standar ansi:</p><p> <a href="http://support.microsoft.com/kb/316626">trailing blank menjelaskan</a> :</p><blockquote> <p>sql server mengikuti spesifikasi ansi/iso sql-92 (bagian 8.2, aturan umum # 3) tentang cara membandingkan string dengan spasi. standar ansi membutuhkan padding untuk string karakter yang digunakan dalam perbandingan sehingga panjangnya cocok sebelum membandingkannya. padding secara langsung mempengaruhi semantik predikat klausa where dan having dan perbandingan string transact-sql lainnya. sebagai contoh, transact-sql menganggap string 'abc' dan 'abc' setara untuk sebagian besar operasi perbandingan.</p> <p>satu-satunya pengecualian untuk aturan ini adalah predikat like. ketika sisi kanan dari ekspresi predikat like fitur nilai dengan spasi tambahan, sql server tidak memadatkan dua nilai dengan panjang yang sama sebelum perbandingan terjadi. karena tujuan dari predikat like, menurut definisi, adalah untuk memfasilitasi pencarian pola daripada tes persamaan string sederhana, ini tidak melanggar bagian dari spesifikasi ansi sql-92 yang disebutkan sebelumnya.</p> </blockquote><p>berikut adalah contoh umum dari semua kasus yang disebutkan di atas:</p><pre><code>declare @a varchar(10) declare @b varchar(10) set @a = '1' set @b = '1 ' --with trailing blank select 1 where @a = @b and @a not like @b and @b like @a </code></pre><p>inilah beberapa detail lebih lanjut tentang <a href="http://msdn.microsoft.com/en-us/library/ms179859.aspx">mengeklik kosong dan klausa <code>like</code></a> .</p><p><strong> [~ # ~] tetapi [~ # ~] </strong> jika anda ingin membuatnya berbeda - anda dapat memutuskan untuk menggunakan fungsi <code>datalength</code> alih-alih <code>len</code>, karena</p><pre><code>select 1 where len('john ') = len('john') </code></pre><p>akan menempatkan anda 1 sebagai gantinya</p><pre><code>select 1 where datalength('john ') = datalength('john') </code></pre><p><strong> solusinya </strong> adalah</p><ul> <li>untuk menggunakan fungsi datalength untuk membedakan antara string</li> <li>untuk memasukkan string ke dalam tipe nvarchar - mungkin lebih baik menyatakan tipe ini ke parameter sp</li> </ul>
alasan ketidaktepatan penggunaan tanda baca pada kalimat tersebut adalah tanda seru (!) tersebut digunakan untuk mengakhiri kalimat tanya. hal ini karena kalimat yang disajikan merupakan kalimat tanya sebab ditandai dengan adanya kata tanya 'apakah', sehingga kalimat tersebut harus diakhiri dengan tanda tanya bukan tanda seru.

jadi, jawaban yang benar adalah a. <p>saya akan menghindari tanda hubung dalam nama domain. meskipun mereka berguna di jalur untuk file atau posting, mereka menambahkan suara yang tidak perlu ke domain itu sendiri. bayangkan harus mengejanya untuk seseorang ... "stack dash overflow dot com" tidak terdengar benar.</p><p>di sisi lain, ada kemungkinan beberapa domain di mana tanda hubung yang ditempatkan dengan baik akan bermanfaat. sebagai contoh: <strong>expertsexchange</strong> dapat dibaca sebagai <strong>expert sex change</strong>. tanda hubung akan membuat perbedaan besar: <strong>pertukaran pakar</strong>.</p><p>pada akhirnya, itu terserah anda, tetapi insting saya adalah untuk menghindari tanda hubung dalam nama domain.</p> <p>perintah <kbd>d</kbd><kbd>w</kbd> akan menghapus dari posisi kursor saat ini ke awal karakter word berikutnya. perintah <kbd>d</kbd><kbd>$</kbd> (perhatikan, itu tanda dolar, bukan tanda 's') akan dihapus dari posisi kursor saat ini ke akhir baris saat ini. <kbd>d</kbd> adalah sinonim untuk <kbd>d</kbd><kbd>$</kbd>.</p> untuk penulisan nama gelar, kita harus membubuhkan tanda baca titik antara nama gelar dengan nama bidang. maka dalam kalimat di atas, penggunaan titik berguna untuk memisahkan sarjana dengan hukum. gelar tersebut akan menjadi “s.h." sementara itu, untuk penulisan atas nama, kita juga harus menggunakan tanda baca titik sehingga kata tersebut menjadi “a.n”. kemudian, untuk penulisan pt, kita tidak membutuhkan tanda baca titik. oleh sebab itu, jawaban yang paling tepat adalah a. <p>akhirnya, inilah bagaimana saya mengadaptasi dan menempelkan saran dari @tostinni, @stefgosselin, @ uwe999 jawaban dan lainnya:</p><pre><code>/** * implementation of hook\_form\_alter(). */ function custom\_module\_form\_alter(&amp;$form, &amp;$form\_state, $form\_id) { switch ($form\_id) { case 'my\_form\_id': // add custom validation callback $form['#validate'][] = 'custom\_module\_my\_form\_id\_validate'; break; ... default: break; } } </code></pre><p>maka semua fungsi yang saya implementasikan di:</p><pre><code>/** * implementation of hook\_form\_form\_id\_alter */ function custom\_module\_my\_form\_id\_validate(&amp;$form, &amp;$form\_state) { //retrieve the value for your field $value = $form\_state['values']['field\_my\_field']['und'][0]['value']; //execute a count query to see if there's other similar values. $query = new entityfieldquery; $query-&gt;entitycondition('entity\_type', 'field\_collection\_item') -&gt;fieldcondition('field\_my\_field', 'value', $value) -&gt;count(); $count = $query-&gt;execute(); if ($count &gt; 0) { form\_set\_error('field\_my\_field', 'unique field value is already used.'); } } </code></pre><p>saya sudah mencoba bekerja dengan <code>entity\_metadata\_wrapper</code> tapi sayangnya saya belum berhasil.</p><p>terima kasih atas jawaban anda.</p> kurang setuju oom.. boleh saja menggunakan bahasa inggris, atau bahasa apapun, hanya sifatnya temporer saja... bukankah user2 jps terdiri atas berbagai golongan usia, jenjang pendidikan, suku bangsa, dsb? membiasakan dan beradaptasi memang sangat baik, tapi bukan yang terbaik...
esensi dari jps dan room2 lain di yahoo! answer sendiri menurut saya adalah saling berbagi informasi yang bisa dimengerti oleh semua user yahoo! answer. andaikata kita menggunakan bahasa inggris, apakah bisa dimengerti dan dipahami oleh semua user? saya rasa tidak... berbicara menggunakan bahasa indonesia saja masih banyak yang salah menafsirkan, apalagi bahasa inggris... ^^

salam hangat & jabat erat buat semua user yahoo! answer,,,,
carlitos... ejaan adalah penggambaran bunyi bahasa (kata, kalimat, dan lain sebagainya) dalam tulisan (huruf-huruf) serta penggunaan tanda baca.

pada kalimat di atas, kesalahan ejaan adalah tidak ada tanda koma setelah kata pelajaran, padahal tanda koma dipakai untuk memisahkan anak kalimat yang mendahului induk kalimatnya. tanda koma juga dipakai untuk memisahkan kalimat majemuk setara yang satu dari kalimat setara yang berikutnya, yang didahului oleh kata seperti, tetapi, dan melainkan. pada kalimat tersebut terdapat kata melainkan setelah kata pelajaran sehingga harus diberi tanda koma (,).

dengan demikian, jawaban yang tepat adalah pilihan b. <p>iterasi atas string sayangnya agak lambat di python. ekspresi reguler melebihi urutan besarnya lebih cepat untuk hal semacam ini. anda hanya perlu membangun kelas karakter sendiri. modul <em>unicodedata</em> cukup membantu untuk ini, terutama fungsi <em>unicodedata.category ()</em>. lihat <a href="http://www.unicode.org/reports/tr44/#general\_category\_values">basis data karakter unicode</a> untuk deskripsi kategori.</p><pre><code>import unicodedata, re all\_chars = (unichr(i) for i in xrange(0x110000)) control\_chars = ''.join(c for c in all\_chars if unicodedata.category(c) == 'cc') # or equivalently and much more efficiently control\_chars = ''.join(map(unichr, range(0,32) + range(127,160))) control\_char\_re = re.compile('[%s]' % re.escape(control\_chars)) def remove\_control\_chars(s): return control\_char\_re.sub('', s) </code></pre> jadi, dari angka ,  satuan ke kiri maka berhenti di angka  kemudian  satuan ke kanan dan berhenti di angka  selanjutnya  satuan ke kiri dan akhirnya berhenti di angka .

hasilnya adalah . <p>anda bisa mengatur variabel <a href="http://en.wikipedia.org/wiki/internal\_field\_separator">bidang pemisah internal</a> (ifs) variabel, dan kemudian membiarkannya mengurai menjadi array. ketika ini terjadi dalam suatu perintah, maka penugasan ke <code>ifs</code> hanya terjadi pada lingkungan perintah tunggal itu (ke <code>read</code>). ini kemudian mem-parsing input sesuai dengan nilai variabel <code>ifs</code> ke dalam array, yang kemudian dapat kita iterate.</p><pre><code>ifs=';' read -ra addr &lt;&lt;&lt; "$in" for i in "${addr[@]}"; do # process "$i" done </code></pre><p>ini akan mengurai satu baris item yang dipisahkan oleh <code>;</code>, mendorongnya ke dalam array. hal-hal untuk memproses seluruh <code>$in</code>, setiap kali satu baris input dipisahkan oleh <code>;</code>:</p><pre><code> while ifs=';' read -ra addr; do for i in "${addr[@]}"; do # process "$i" done done &lt;&lt;&lt; "$in" </code></pre>