Uzyskaj stałą wartość dla wybranego


13

Muszę wykonać SELECTzapytanie, w którym otrzymuję wartość pola „pieniądze”. Pole tak naprawdę nie istnieje w bazie danych. Potrzebuję tylko zapytania, aby zwrócić to pole ze stałą wartością; w tym przypadku wartość w USD.

Jak zwrócić stałą wartość w SELECTwyciągu?


Odpowiedzi:


21

Jeśli wartość zawsze będzie taka sama, możesz zrobić coś takiego:

SELECT 'USD' AS `MONEY`, a.*
  FROM INFORMATION_SCHEMA.SCHEMATA AS a

Wystarczy zamienić a. * Na kolumny, które chcesz zwrócić, a INFORMACJE_SCHEMA.SCHEMATA na schemat i tabele, które chcesz zapytać.

Mam nadzieję, że to ci pomoże.


Wielkie dzięki. Działa jak marzenie. Po prostu ciekawy. Do czego służy ten ostatni „AS a” (po „FROM INFORMACJE_SCHEMA.SCHEMATA”)?
fedejp

Żaden problem. AS określa alias dla tabeli, jest to zasadniczo krótka nazwa, do której można odwoływać się do tabeli.
Mr.Brownstone,

Świetnie. Nie pomyślałem, że możesz użyć aliasów do tabel. Wielkie dzięki!
fedejp

0

@fedejp nie musisz wstawiać „AS”. Możesz po prostu napisać „INFORMACJE_SCHEMA.SCHEMATA a”, ponieważ „AS” jest zrozumiały.

A jeśli w zapytaniu jest tylko jedna tabela (bez złączeń), nie musisz używać aliasu i żadne z określonych pól nie wymaga „a”. przed nazwą pola, ponieważ nie ma wątpliwości co do tego, z której tabeli pochodzą wszystkie pola.

Możesz więc po prostu napisać:

SELECT 'USD' AS `MONEY`, * FROM INFORMATION_SCHEMA.SCHEMATA;

Mimo to, aliasing nawet jednej tabeli daje możliwość wpisania „a”. na liście wyboru (w przypadku aliasu „a”) i wyświetleniu wszystkich kolumn tabeli na liście rozwijanej. Myślę, że można śmiało powiedzieć, że prawie każdy programista SQL z doświadczeniem zawodowym zawsze będzie aliasował swoje tabele - nawet jeśli zostanie wybrany tylko jeden. Jedynym miejscem, w którym nie używam aliasów, jest podanie wartości wynikowej podzapytania dla kolumny. Następnie aliasowałbym tabelę w głównym selekcji, ale nie alias tabeli w podzapytaniu, abyś mógł szybko odróżnić pola podzapytania od pól głównego zapytania.
Mashchax,
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.