Bahasa kueri 1c 8.3 serupa. Mirip dengan kondisi kueri

Bahasa kueri 1c 8.3 serupa.  Mirip dengan kondisi kueri
Bahasa kueri 1c 8.3 serupa. Mirip dengan kondisi kueri

Operator MENYUKAI memungkinkan Anda membandingkan data tipe string dalam permintaan yang terletak di sebelah kiri operator dengan data tipe string yang terletak di sebelah kanan operator. Hasil perbandingan bernilai Benar atau Salah, sehingga perbandingan tersebut dapat diterapkan sebagai syarat.

Untuk operator MENYUKAI Ada karakter layanan khusus yang tidak dianggap sebagai string:

  • Simbol persen "%": menunjukkan keberadaan sejumlah karakter arbitrer dalam sebuah string
  • "[...]" satu atau lebih karakter dalam tanda kurung siku: menunjukkan keberadaan salah satu (tunggal) karakter yang terdaftar. Juga, serangkaian karakter dapat ditentukan (misalnya)
  • Garis bawah "_": menunjukkan adanya karakter sembarang
  • Karakter negasi "[^...]": menunjukkan keberadaan karakter tunggal apa pun selain yang ditentukan dalam tanda kurung siku
Jika Anda perlu menentukan salah satu karakter khusus di atas untuk perbandingan, Anda harus menggunakan kata kunci "SIMBOL KHUSUS"

Fitur penggunaan dengan berbagai DBMS

IBM DB2"Hanya parameter yang dapat ditempatkan di sebelah kanan operator SIMILAR. Satu-satunya karakter wildcard adalah "_" (garis bawah berarti karakter apa pun) dan "%" (persentase berarti urutan karakter apa pun).
Dalam hal menggunakan DBMS " PostgreSQL" atau " Basis Data Oracle"karakter khusus "tanda kurung siku [...]" hanya diterima jika ditentukan dalam teks permintaan, dan TIDAK diteruskan sebagai parameter ke permintaan.

Jadi, di basis data file karakter khusus akan selalu dirasakan dengan cara yang sama, dan berbeda tergantung pada DBMS yang digunakan dalam versi client-server.

Contoh: pilih produk yang mengandung simbol "%" pada namanya

PILIH | Ref.Link |DARI | Direktori Nomenklatur BAGAIMANA Ref | Ref.Nama SEPERTI "%\%" KARAKTER KHUSUS "\"

Contoh: pilih produk yang namanya diawali dengan kata "Tank"

PILIH | Ref.Link |DARI | Direktori Nomenklatur BAGAIMANA Ref | Ref.Nama SAMA dengan "Bak%"

Contoh: pilih produk yang namanya diakhiri dengan angka

PILIH | Ref.Link |DARI | Direktori Nomenklatur BAGAIMANA Ref | Ref.Nama SAMA dengan "%"

MENYUKAI- Operator untuk memeriksa kesamaan string dengan suatu pola. Analogi LIKE dalam SQL.
Operator MENYUKAI memungkinkan Anda membandingkan nilai ekspresi yang ditentukan di sebelah kirinya dengan string pola yang ditentukan di sebelah kanan. Nilai ekspresi harus bertipe string. Jika nilai ekspresi cocok dengan pola, hasil operatornya adalah TRUE, jika tidak, maka FALSE.
Karakter berikut dalam string pola adalah karakter layanan dan memiliki arti berbeda dari karakter string:
. % (persen): urutan yang berisi sejumlah karakter arbitrer
. _ (garis bawah): satu karakter arbitrer
. […] (satu atau lebih karakter dalam tanda kurung siku): setiap karakter yang tercantum di dalam tanda kurung siku
Pencacahan dapat berisi rentang, misalnya a-z, yang berarti karakter sembarang yang termasuk dalam rentang tersebut, termasuk ujung rentang.
. [^...] (dalam tanda kurung siku, tanda negasi diikuti oleh satu atau lebih karakter): karakter apa pun selain yang tercantum setelah tanda negasi
Simbol lainnya berarti dirinya sendiri dan tidak membawa beban tambahan apa pun.
Jika salah satu karakter yang tercantum perlu ditulis sendiri, maka harus didahului dengan<Спецсимвол>. Saya sendiri<Спецсимвол>(simbol apa pun yang sesuai) didefinisikan dalam pernyataan yang sama setelahnya kata kunci SIMBOL KHUSUS.
Misalnya, pola “%ABV[abvg]\_abv%” KARAKTER KHUSUS “\” berarti substring yang terdiri dari rangkaian karakter:
huruf A; huruf B; huruf B; satu angka; salah satu huruf a, b, c atau d; menggarisbawahi; huruf a; huruf b; huruf v.
Selain itu, urutan ini dapat didahului oleh serangkaian karakter yang berubah-ubah.

Contoh penggunaan:
Kode 1C v 8.x Prosedur BankEndTextInput (Elemen, Teks, Nilai, Pemrosesan Standar)
Pemrosesan Standar = Salah;
//Buat kueri dengan penelusuran menggunakan pola seperti "%" +<Текст введенный пользователм в поле ввода> + "%"
Permintaan = Permintaan Baru;
Query.SetParameter("Nama", "%" + Teks + "%");
Kueri.Teks = "PILIH
| Bank.Link
|DARI
| Direktori.Bank BAGAIMANA Bank
|DIMANA
| Bank.Nama SERUPA &Nama";

Hasil = Kueri.Jalankan();
Pilihan = Hasil.Pilih();
Jika Hasil.Kosong() Lalu
//Tidak ada yang ditemukan. Di sini Anda dapat menampilkan pesan atau melakukan hal lain :)
Jika tidak
//Dapatkan hasilnya
tzResults = Hasil.Bongkar();
//Siapkan daftar nilai yang akan berisi elemen yang ditemukan.
Nilai = Daftar Nilai Baru();
Nilai.LoadValues(tzResults.UnloadColumn("Link"));
akhirJika;
Prosedur Akhir

“Perjanjian Default” harus hanya menyertakan Nama Perjanjian Utama, dll.:
Kode 1C v 8.x Pilihan
Jika Namanya SAMA dengan “Nomor Perjanjian%” maka “Perjanjian dengan nomor” // Baris apa pun yang dimulai dengan “Nomor Perjanjian” dapat digunakan
Jika Namanya SAMA dengan "Perjanjian Utama%[^А-яЁе"+Symbol(33)+"-"+Symbol(126)+"№"""+Symbols.PS+Symbols.Tab+Symbols.PF+Symbols .NPP+ Symbols.VTab+"]%" lalu "Kontrak Default" // Baris apa pun yang dimulai dengan "Kontrak Utama" dapat digunakan
Jika tidak, "Lainnya"
Berakhir Seperti Jenis Kontrak

Informasi diambil dari situs

Mari kita lihat tujuan dan penggunaan operator kondisional SEPERTI(eng. SEPERTI) dalam bahasa kueri 1C dalam contoh.

Lompat Cepat

Tujuan

Periksa apakah nilai string dalam permintaan cocok dengan pola yang ditentukan - mengembalikan nilai Boolean (TRUE atau FALSE).

  • Cek ini tidak bergantung pada kasus.
  • Kueri menggunakan indeks tabel—tidak terkait dengan indeks penelusuran teks lengkap.
  • Mungkin memerlukan waktu lama untuk menyelesaikannya dengan meja besar.
  • String yang panjangnya tidak terbatas harus dikonversi menggunakan fungsi SUBSTRING

Tempat penggunaan

  • Dalam istilah operator WHERE
  • Dalam kondisi desain PILIHAN KAPAN<>LALU "" LAIN "" AKHIR
  • Di kolom pilihan (misalnya: Nama LIKE &ParameterMirip dengan StringSuitable)

Deskripsi sintaks operator LIKE

Parameter operator harus berupa string: dapat ditentukan sebagai konstanta, atau diteruskan sebagai parameter permintaan.

Literal (masker) yang tercantum di bawah ini dapat digunakan secara bersamaan atau terpisah.

Spesifikasi string yang tepat

PILIH 10 yang pertama
Kunci.Nama
DARI
Direktori.Kunci SEBAGAI Kunci
DI MANA
Kunci.Nama SERUPA dengan "1" // Setara dengan Kunci.Nama ="1"

Hasil:

% adalah arti literal sejumlah karakter apa pun

PILIH 10 yang pertama
Kunci.Nama
DARI
Direktori.Kunci SEBAGAI Kunci
DI MANA
Kunci.Nama SEPERTI "%"

Hasil: 10 item apa saja

_ (garis bawah): pencocokan literal dengan satu karakter

Contoh #1:

PILIH 10 yang pertama
Kunci.Nama
DARI
Direktori.Kunci SEBAGAI Kunci
DI MANA
Kunci.Nama SEPERTI "_"

Contoh #2: dimulai dengan karakter apa saja, diikuti dengan “1”, lalu karakter apa saja

PILIH 10 yang pertama
Kunci.Nama
DARI
Direktori.Kunci SEBAGAI Kunci
DI MANA
Kunci.Nama SAMA dengan "_1%"

Hasil:

(satu atau lebih karakter dalam tanda kurung siku)

  • Setiap literal yang cocok dengan salah satu karakter digunakan sebagai OR.
    Dapat diterima untuk menentukan rentang, misalnya a-z,0-5, yang berarti karakter arbitrer dari rentang yang ditentukan

Contoh

PILIH 10 yang pertama
Kunci.Nama
DARI
Direktori.Kunci SEBAGAI Kunci
DI MANA
Kunci.Nama SAMA dengan "[l]%"

Hasil: 10 dimulai dengan "l" atau "z"

Contoh: dimulai dengan 5,6,7

PILIH 10 yang pertama
Kunci.Nama
DARI
Direktori.Kunci SEBAGAI Kunci
DI MANA
Kunci.Nama SEPERTI "%"

Hasil:

[^] (dalam tanda kurung siku terdapat tanda escape ^ diikuti oleh satu karakter atau lebih)

Setara dengan karakter apa pun (_) kecuali yang ditentukan ()

Contoh

PILIH 10 yang pertama
Kunci.Nama
DARI
Direktori.Kunci SEBAGAI Kunci
DI MANA
Kunci.Nama SERUPA dengan "8.[^012]%"//tidak menyertakan 8.0,8.1,8.2

Hasil: semua dimulai dengan "8." kecuali yang disebutkan

KARAKTER KHUSUS - perintah untuk menentukan karakter yang terdaftar di atas dalam permintaan

Sebagai simbol layanan, diperbolehkan menggunakan setidaknya: #,~,/,\

Contoh:

PILIH 10 yang pertama
Kunci.Nama
DARI
Direktori.Kunci SEBAGAI Kunci
DI MANA
Kunci.Nama SEPERTI "#_" KARAKTER KHUSUS "#"

Hasil:

Penerapan dalam platform

Parameter yang salah SEPERTI<>

  • Parameter tipe non-string diteruskan: misalnya, angka 1, bukan string “1”
  • Bidang tipe non-string dibandingkan dengan topeng yang valid (misalnya, tautan) atau saat menghubungkan, nilainya tidak dicentang untuk IsNUL

Perhatikan teks kesalahan tempat pertanyaan ditampilkan:

Kunci.Nama SERUPA<>&L

Terkadang situasi muncul ketika di 1C 8.3 atau 8.2 Anda perlu membuat pilihan, misalnya, dari direktori semua elemen yang memiliki kata "glaze" di namanya. Atau, dari direktori, pilih semua kontraktor yang nama belakangnya mengandung kata “Ivan”. Secara umum, periksa beberapa nilai string.

Untuk tujuan ini, ada operator di kueri 1C 8.3 dan 8.2 - "Serupa". Ini digunakan, masing-masing, dalam kondisi berikut:

Dapatkan 267 pelajaran video di 1C gratis:

Bagaimana cara menggunakan templat dalam kueri 1C?

Untuk menghasilkan kondisi pemilihan, Anda perlu meneruskan template tertentu sebagai parameter. Untuk membuat template, ada yang disebut simbol layanan.

Misalnya, karakter "%" mengizinkan rangkaian karakter arbitrer apa pun:

Ada yang lain karakter khusus:

  • % (persentase) - mengizinkan urutan karakter arbitrer apa pun;
  • _ (garis bawah) - karakter tunggal apa pun;
  • […] – satu karakter arbitrer dari yang tercantum di dalam tanda kurung. Selain membuat daftar karakter, Anda dapat menggunakan rentang. Contoh: ao;
  • [^...] – sama seperti yang sebelumnya, tetapi terbalik. Tanda "^" berarti negasi.